New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Parallel Mesh By Choice #2105
Comments
In 4e282ef:
|
In 2e96c32:
|
In 92f695d:
|
In fe82ced:
|
In 8b77942:
|
In :
|
In b676994:
|
Since the plan is to use a MooseEnum {PARALLEL, SERIAL, DEFAULT} to read the user's input, we probably don't want to call it 'parallel' any more:
or even better
is just crazy-pants. What do we want to call it? Right now I'm using
But I'm willing to admit that name's a little cumbersome... |
or 'distribute_mesh = true/false' |
How about something simple: mesh_type
|
Andrew, I first thought about 'mesh_type' but since we already have the 'type' parameter, I thought it might be too similar? If anyone else thinks mesh_type is fine I'd be happy to use that instead. Yaqi, your suggestion is good too, but we do need something more than just a boolean type. The 'default' mesh_type means that the input file will work with either SerialMesh or ParallelMesh, and the user can override it by specifying --parallel-mesh on the command line. |
Why not to use just: decomposition = {default | parallel | serial} ? |
I like something close to what Yaqi said: parallel_distribution = { default | serial | parallel } or maybe just distribution = { default | serial | parallel } "decomposition" is getting too close to "partitioning" I could see people getting confused by that. |
OK going with this
|
In 354392c:
|
In d9fb1d4:
|
In 37fbf05:
|
In 4b3f7b1:
|
In 3c91442:
|
In 4da24ee:
|
In 6e81a40:
|
In c38f4ef:
|
In a1f8022:
|
In c977ec6:
|
In c1a7def:
|
In 01cc5ad:
|
In a4d80bd:
|
In 938e89f:
|
It now only tests reading a mesh in Gmsh format and writing it back out. Should also work with ParallelMesh enabled. Refs #2105. r20845
Apparently just changing the mesh type from SerialMesh to ParallelMesh is enough to make it do a different number of residual evaluations... Refs #2105. r20847
…sh doesn't work if the underlying Mesh is a ParallelMesh. Refs #2105. r20849
In dbg mode, StripeMesh will trip an assert in libmesh when used with ParallelMesh. Refs #2105. r20851
…o find the file out.e.1.0, since the number of processors is encoded into the name. Refs #2105. r20852
…, check to see if it starts with a dash first. Refs #2105. r20853
…ork if you try to run them in parallel with ParallelMesh. Therefore, restrict these tests to using SerialMesh. Refs #2105. r20854
…h by using the MeshBase::query_node_ptr() functionality. Refs #2105. r20855
…elMesh. The MeshBase::query_elem() function never asserts and returns NULL for non-local elements. It is the safe way to get Elem pointers whenever ParallelMesh may be used. Refs #2105. r20856
The SolutionUserObject uses the copy_nodal_solution() capability of the Exodus reader, and therefore won't work if the initial mesh has been renumbered (it will be reunumbered if you are running with ParallelMesh in parallel). Hence, we restrict the relevant tests to run with SerialMesh only. Refs #2105. r20857
…), which only works with SerialMesh. Refs #2105. r20859
Be consistent with other string checks in the same file. Refs #2105. r20905
…ks with SerialMesh. Refs #2105 r21407
This function can be used by clients of MooseMesh that are known not to work with ParallelMesh to throw a uniformly-formatted error in cases where they are incorrectly used by ParallelMesh. Adding MooseMesh::errorIfParallelDistribution() to the NodalVariableValue class; will be adding it to others over time. Refs #2105. r21422
* StripeMesh * SideSetsFromPoints * SideSetsFromNormals * AddAllSideSetsByNormals * TiledMesh * ElementalVariableValue * SolutionUserObject * MultiAppNearestNodeTransfer * MultiAppMeshFunctionTransfer * MultiAppInterpolationTransfer * MultiAppUserObjectTransfer Refs #2105. Adding distribution=serial to input several input files to avoid triggering the new error message. r21452
We need to configure libMesh with ParallelMesh always... and then optionally use "parallel = true" in the Mesh block to turn it on. We will default to SerialMesh.
Just don't use Mesh() to create the Mesh... use either SerialMesh or ParallelMesh depending on that option.
The text was updated successfully, but these errors were encountered: