First, I can confirm that I get about the same numbers as... Lagrange
without CM is 3357!
average/max on-processor bandwidth (n_elem=10, n_vars=150):
without CM with CM
LAGRANGE(FIRST) 3357.36/4050 22.3824/27
MONOMIAL(CONSTANT) 960/1050 811/901
Clearly you have more RAM than I do :)
Second, I don't really know what the problem is, but could it have
something to do with this use_coupled_neighbor_dofs() function? We
assume that MONOMIAL implies DG/FV, and therefore set
implicit_neighbor_dofs = true. I guess what you are saying is that
this is not always the case... for example in the mass matrix.
Yep, in my case I want a block diagonal mass matrix for computing L2
projections (of many variables simultaneously) into the DG space.
bool DofMap::use_coupled_neighbor_dofs(const MeshBase& mesh) const
{
// If we were asked on the command line, then we need to
// include sensitivities between neighbor degrees of freedom
bool implicit_neighbor_dofs =
libMesh::on_command_line ("--implicit_neighbor_dofs");
// look at all the variables in this system. If every one is
// discontinuous then the user must be doing DG/FVM, so be nice
// and force implicit_neighbor_dofs=true
{
bool all_discontinuous_dofs = true;
for (unsigned int var=0; var<this->n_variables(); var++)
if (FEAbstract::build (mesh.mesh_dimension(),
this->variable_type(var))->get_continuity() != DISCONTINUOUS)
all_discontinuous_dofs = false;
if (all_discontinuous_dofs)
implicit_neighbor_dofs = true;
}
return implicit_neighbor_dofs;
}
Ah, good catch! If I change use_coupled_neighbor_dofs to do "return
libMesh::on_command_line ("--implicit_neighbor_dofs")", then it works
fine, e.g. the bandwidth in my test code with FIRST MONOMIAL becomes 4.
So I'd like to be able to enforce --implicit_neighbor_dofs=false, even
if all variables are DISCONTINUOUS.
Any preferences on how to change the API to allow that? Perhaps a second
boolean argument to use_coupled_neighbor_dofs called
"use_commandline_value"?
Thanks!
David
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel