OOFEM 3.0
Loading...
Searching...
No Matches
oofem::Subdivision Class Reference

#include <subdivision.h>

Inheritance diagram for oofem::Subdivision:
Collaboration diagram for oofem::Subdivision:

Classes

class  RS_Node
class  RS_IrregularNode
class  RS_Element
class  RS_Triangle
class  RS_Tetra
class  RS_SharedEdge
class  RS_Mesh
class  RS_CompareNodePositions
struct  RS_packRemoteElemsStruct

Public Member Functions

 Subdivision (Domain *d)
 Constructor.
virtual ~Subdivision ()
returnCode createMesh (TimeStep *tStep, int domainNumber, int domainSerNum, Domain **dNew) override
 Runs the mesh generation, mesh will be written to corresponding domain din file.
const char * giveClassName ()
DomaingiveDomain ()
Public Member Functions inherited from oofem::MesherInterface
 MesherInterface (Domain *d)
 Constructor.
virtual ~MesherInterface ()
 Destructor.
virtual void initializeFrom (InputRecord &ir)

Protected Member Functions

Subdivision::RS_MeshgiveMesh ()
void bisectMesh ()
void smoothMesh ()
bool isNodeLocalIrregular (Subdivision ::RS_Node *node, int myrank)
void assignGlobalNumbersToElements (Domain *d)
bool exchangeSharedIrregulars ()
int packSharedIrregulars (Subdivision *s, ProcessCommunicator &pc)
int unpackSharedIrregulars (Subdivision *s, ProcessCommunicator &pc)
void assignGlobalNumbersToSharedIrregulars ()
int packIrregularSharedGlobnums (Subdivision *s, ProcessCommunicator &pc)
int unpackIrregularSharedGlobnums (Subdivision *s, ProcessCommunicator &pc)
void exchangeSharedEdges ()
int packSharedEdges (Subdivision *s, ProcessCommunicator &pc)
int unpackSharedEdges (Subdivision *s, ProcessCommunicator &pc)
bool isNodeLocalSharedIrregular (Subdivision ::RS_Node *node, int myrank)
 Returns true if receiver is irregular, shared node locally maintatined.
int giveRank ()
int giveNumberOfProcesses ()
void exchangeRemoteElements (Domain *d, IntArray &)
int packRemoteElements (RS_packRemoteElemsStruct *s, ProcessCommunicator &pc)
int unpackRemoteElements (Domain *d, ProcessCommunicator &pc)

Protected Attributes

RS_Meshmesh
std ::queue< int > subdivqueue
std ::list< int > sharedIrregularsQueue
std ::list< int > sharedEdgesQueue
bool smoothingFlag
Protected Attributes inherited from oofem::MesherInterface
Domaindomain

Additional Inherited Members

Public Types inherited from oofem::MesherInterface
enum  returnCode { MI_OK , MI_NEEDS_EXTERNAL_ACTION , MI_FAILED }

Detailed Description

This class represents the Rivara Subdivision algorithm for triangular meshes. based on M.C. Rivara. Local modification of meshes for adaptive and/or multigrid finite-element methods. J. Comput. Appl. Math., 36:79–89, 1991.

Definition at line 69 of file subdivision.h.

Constructor & Destructor Documentation

◆ Subdivision()

◆ ~Subdivision()

virtual oofem::Subdivision::~Subdivision ( )
inlinevirtual

Definition at line 414 of file subdivision.h.

References mesh.

Member Function Documentation

◆ assignGlobalNumbersToElements()

◆ assignGlobalNumbersToSharedIrregulars()

◆ bisectMesh()

◆ createMesh()

◆ exchangeRemoteElements()

◆ exchangeSharedEdges()

◆ exchangeSharedIrregulars()

bool oofem::Subdivision::exchangeSharedIrregulars ( )
protected

◆ giveClassName()

const char * oofem::Subdivision::giveClassName ( )
inline

Definition at line 422 of file subdivision.h.

◆ giveDomain()

Domain * oofem::Subdivision::giveDomain ( )
inline

Definition at line 423 of file subdivision.h.

References oofem::MesherInterface::domain.

◆ giveMesh()

Subdivision::RS_Mesh * oofem::Subdivision::giveMesh ( )
inlineprotected

Definition at line 426 of file subdivision.h.

References mesh.

◆ giveNumberOfProcesses()

int oofem::Subdivision::giveNumberOfProcesses ( )
protected

◆ giveRank()

◆ isNodeLocalIrregular()

bool oofem::Subdivision::isNodeLocalIrregular ( Subdivision ::RS_Node * node,
int myrank )
protected

◆ isNodeLocalSharedIrregular()

bool oofem::Subdivision::isNodeLocalSharedIrregular ( Subdivision ::RS_Node * node,
int myrank )
protected

Returns true if receiver is irregular, shared node locally maintatined.

Definition at line 5214 of file subdivision.C.

References oofem::IntArray::at(), oofem::DofManager_shared, oofem::IntArray::giveSize(), and oofem::min().

Referenced by packIrregularSharedGlobnums().

◆ packIrregularSharedGlobnums()

◆ packRemoteElements()

◆ packSharedEdges()

◆ packSharedIrregulars()

◆ smoothMesh()

◆ unpackIrregularSharedGlobnums()

◆ unpackRemoteElements()

◆ unpackSharedEdges()

◆ unpackSharedIrregulars()

Member Data Documentation

◆ mesh

◆ sharedEdgesQueue

◆ sharedIrregularsQueue

std :: list< int > oofem::Subdivision::sharedIrregularsQueue
protected

◆ smoothingFlag

bool oofem::Subdivision::smoothingFlag
protected

Definition at line 406 of file subdivision.h.

Referenced by createMesh(), and Subdivision().

◆ subdivqueue

std :: queue< int > oofem::Subdivision::subdivqueue
protected

The documentation for this class was generated from the following files:

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011