@startuml class FiniteElementSpace { + FiniteElementSpace(MeshView*) + FiniteElementSpace(Mesh*) } class ParFiniteElementSpace { + ParFiniteElementSpace(ParMeshView*) + ParFiniteElementSpace(ParMesh*) } ParFiniteElementSpace <|-- FiniteElementSpace note left of FiniteElementSpace::FiniteElementSpace Non-breaking change. If a mesh provided the class can internally create a full mesh view. end note class Mesh interface MeshView { +MeshView(Mesh*) +MeshView(Mesh*, Array<int> FromAttributes) +GetNX() : int +Dimension() : int +SpaceDimension() : int +GetElement(int) : Element* +GetFace(int) : Element* +GetVertex(int, double*) : void +GetNode(int, double*) : void +GetAttribute() : int +GetBdrAttribute() : int +LocalXToMeshX(int) : int +Nonconforming() : bool +GetNCList(int) : NCList +Update() : void } MeshView <|-- ParMeshView FiniteElementSpace *-- MeshView class FullMeshView { +MeshView(Mesh*) } MeshView <|-- FullMeshView class SubMeshView { -bimap<int,int> element_mapping -bimap<int,int> local_boundary +MeshView(Mesh*, const Array<int>& FromAttributes) +MeshView(Mesh*, const Array<int>& ElementList) } MeshView <|-- SubMeshView class CoMeshView { -bimap<int,int> element_mapping -bimap<int,int> local_boundary +CoMeshView(Mesh*, int codimension) +CoMeshView(Mesh*, int codimension, const Array<int> elements) } MeshView <|-- CoMeshView note left of MeshView::GetNX How many entities "X" (e.g. elements) are in this view visible. Models all the different "GetN*" and "GetNum*" methods. end note note left of MeshView::LocalXToMeshX Translate local (view) numbering to mesh numbering of entity "X" end note CoMeshView *-- Mesh SubMeshView *-- Mesh FullMeshView *-- Mesh class ParMesh Mesh <|-- ParMesh interface ParMeshView { +GenerateOffsets () +GetNFaceNeighbors () : int +GetFaceNbrGroup (int) : int +GetFaceNbrRank (int) : int +GetFaceToAllElementTable () : Table* +GetSharedFaceTransformations (int , bool) : FaceElementTransformations* +GetFaceNbrElementTransformation (int) : ElementTransformation* +GetNSharedFaces() : int +GetSharedFace(int) : int } class ParFullMeshView { +ParMeshView(ParMesh*) } ParMeshView <|-- ParFullMeshView class ParSubMeshView { -MPISubCommunicator subgraph -bimap<int,int> element_mapping -bimap<int,int> local_boundary +ParMeshView(ParMesh*, const Array<int>& FromAttributes) +ParMeshView(ParMesh*, const Array<int>& ElementList) } ParMeshView <|-- ParSubMeshView class ParCoMeshView { -MPISubCommunicator subgraph -bimap<int,int> element_mapping -bimap<int,int> local_boundary +ParCoMeshView(ParMesh*, int codimension) +ParCoMeshView(ParMesh*, int codimension, const Array<int> elements) } ParMeshView <|-- ParCoMeshView ParSubMeshView *-- ParMesh ParCoMeshView *-- ParMesh ParFullMeshView *-- ParMesh ParFiniteElementSpace *-- ParMeshView note left of ParSubMeshView::MPISubCommunicator Some mechanism to work on a subgraph of the ParMesh's MPI graph end note class QuadratureSpace QuadratureSpace *-- MeshView @enduml
Decode URL
Submit
amiga
aws-orange
black-knight
bluegray
blueprint
cerulean-outline
cerulean
crt-amber
crt-green
cyborg-outline
cyborg
hacker
lightgray
mars
materia-outline
materia
metal
mimeograph
minty
plain
reddress-darkblue
reddress-darkgreen
reddress-darkorange
reddress-darkred
reddress-lightblue
reddress-lightgreen
reddress-lightorange
reddress-lightred
sandstone
silver
sketchy-outline
sketchy
spacelab
spacelab-white
superhero-outline
superhero
toy
united
vibrant
Pure Javascript
PNG
SVG
ASCII Art