-
Dear MOOSE Experts, I have some questions about outputting element information. Although it is relatively simple, I look forward to your reply. In moose's simulation, I output elem information, using Elem Information
id()=203, unique_id()=401, processor_id()=0
// dof_id_type _id; processor_id_type _processor_id; unique_id_type _unique_id;
// _id The id of the DofObject.
// _unique_id: A globally unique id, guaranteed not to change as the mesh is repartitioned or adapted.
//
type()=QUAD4
dim()=2
n_nodes()=4
mapping=LAGRANGE_MAP # largrange_map
0 Node id()=195, processor_id()=0, Point=(x,y,z)=( 375, 0, 0)
DoFs=(0/0/0) (0/1/1) (0/2/2) (0/3/3) (1/0/0)
1 Node id()=8, processor_id()=0, Point=(x,y,z)=( 400, 0, 0)
DoFs=(0/0/4) (0/1/5) (0/2/6) (0/3/7) (1/0/1)
2 Node id()=197, processor_id()=0, Point=(x,y,z)=( 400, 83.3333, 0)
DoFs=(0/0/8) (0/1/9) (0/2/10) (0/3/11) (1/0/2)
3 Node id()=196, processor_id()=0, Point=(x,y,z)=( 375, 83.3333, 0)
DoFs=(0/0/12) (0/1/13) (0/2/14) (0/3/15) (1/0/3)
n_sides()=4
neighbor(0)=nullptr
neighbor(1)=214
neighbor(2)=205
neighbor(3)=202
hmin()=25, hmax()=87.0026
volume()=2083.33 // h*l
active()=1, ancestor()=0, subactive()=0, has_children()=0
parent()=43
level()=2, p_level()=0
refinement_flag()=DO_NOTHING
p_refinement_flag()=DO_NOTHING
DoFs=(1/1/36) (1/2/37) (1/3/38) (1/4/39) (1/5/40) (1/6/41) (1/7/42) (1/8/43) So my question is what does Any suggestions or recommendations to fix these problems would be greatly appreciated. Thanks Wei |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 5 replies
-
Each DofObject (node or elem) in a mesh has an If libMesh is configured with If libMesh is configured with MPI support (as MOOSE also does), each object on a mesh belongs to a "processor", an MPI rank. When the mesh is "partitioned" during standard preparation while running in parallel, objects are assigned to be "owned" by different ranks; the |
Beta Was this translation helpful? Give feedback.
-
To anyone who is working directly with libmesh's Elements / Dofobject classes, here is an addendum to the excellent answer already given. The There is no build-in method to query a mesh for a node of a given |
Beta Was this translation helpful? Give feedback.
Each DofObject (node or elem) in a mesh has an
id()
, which is the fastest way to look it up and which libMesh uses to identify it internally. The set of ids in a mesh is typically very dense, and is often (except when objects have been deleted and not replaced or renumbered afterward) contiguous. This id may be changed mid-simulation if the mesh is changed in such a way to trigger renumbering, unless renumbering is disabled first.If libMesh is configured with
--enable-unique-id
(as MOOSE does), each object also has aunique_id()
. libMesh provides this but doesn't use it internally. An object's unique_id will never change, unless the object is deleted entirely and a new one created in its…