Peridynamics mesh class. More...
#include <PeridynamicsMesh.h>
Public Types | |
enum | ParallelType { ParallelType::DEFAULT, ParallelType::REPLICATED, ParallelType::DISTRIBUTED } |
typedef std::pair< const Node *, BoundaryID > | PeriodicNodeInfo |
typedef DataFileName | DataFileParameterType |
Public Member Functions | |
PeridynamicsMesh (const InputParameters ¶meters) | |
PeridynamicsMesh (const PeridynamicsMesh &)=default | |
PeridynamicsMesh & | operator= (const PeridynamicsMesh &other_mesh)=delete |
virtual std::unique_ptr< MooseMesh > | safeClone () const override |
virtual void | buildMesh () override |
virtual unsigned int | dimension () const override |
dof_id_type | nPDNodes () const |
Function to return number of PD nodes. More... | |
dof_id_type | nPDBonds () const |
Function to return number of PD Edge elements. More... | |
void | createPeridynamicsMeshData (MeshBase &fe_mesh, std::set< dof_id_type > converted_elem_id, std::multimap< SubdomainID, SubdomainID > bonding_block_pairs, std::multimap< SubdomainID, SubdomainID > non_bonding_block_pairs) |
Function to assign values to member variables (PD mesh data) of this class this function will be called in the PD mesh generator class. More... | |
std::vector< dof_id_type > | getNeighbors (dof_id_type node_id) |
Function to return neighbor nodes indices for node node_id. More... | |
dof_id_type | getNeighborIndex (dof_id_type node_i, dof_id_type node_j) |
Function to return the local neighbor index of node_j from node_i's neighbor list. More... | |
std::vector< dof_id_type > | getBonds (dof_id_type node_id) |
Function to return the bond number connected with node node_id. More... | |
std::vector< dof_id_type > | getBondDeformationGradientNeighbors (dof_id_type node_id, dof_id_type neighbor_id) |
Function to return indices of neighbors used in formulation of bond-associated deformation gradient for bond connecting node_id and neighbor_id. More... | |
SubdomainID | getNodeBlockID (dof_id_type node_id) |
Function to return block ID for node node_id. More... | |
void | setNodeBlockID (SubdomainID id) |
Function to set block ID for all PD nodes. More... | |
Point | getNodeCoord (dof_id_type node_id) |
Function to return coordinates for node node_id. More... | |
std::vector< dof_id_type > | getPDNodeIDToFEElemIDMap () |
Function to return the correspondence between PD node IDs and FE element IDs. More... | |
Real | getNodeVolume (dof_id_type node_id) |
Function to return nodal volume for node node_id. More... | |
Real | getHorizonVolume (dof_id_type node_id) |
Function to return summation of neighbor nodal volumes for node node_id. More... | |
Real | getHorizonSubsetVolume (dof_id_type node_id, dof_id_type neighbor_id) |
Function to return the volume of a horizon subset for bond-associated deformation gradient calculation for bond connecting node node_id and its neighbor neighbor_id. More... | |
Real | getHorizonSubsetVolumeSum (dof_id_type node_id) |
Function to return the summation of all horizon subset volumes for node node_id. More... | |
Real | getHorizonSubsetVolumeFraction (dof_id_type node_id, dof_id_type neighbor_id) |
Function to return the volume fraction of a horizon subset used for bond-associated deformation gradient calculation for bond connecting node node_id and its neighbor neighbor_id. More... | |
Real | getNodeAverageSpacing (dof_id_type node_id) |
Function to return the average spacing between node node_id with its most adjacent neighbors. More... | |
Real | getHorizon (dof_id_type node_id) |
Function to return horizon size. More... | |
Real | getBoundaryOffset (dof_id_type node_id) |
Function to return offset for boundary nodes. More... | |
Real | getNeighborWeight (dof_id_type node_id, dof_id_type neighbor_id) |
Function to return normalized weight for neighbor neighbor_id of node node_id based on predefined weight function. More... | |
virtual MooseMesh & | clone () const |
void | determineUseDistributedMesh () |
std::unique_ptr< MeshBase > | buildMeshBaseObject (unsigned int dim=libMesh::invalid_uint) |
std::unique_ptr< T > | buildTypedMesh (unsigned int dim=libMesh::invalid_uint) |
void | setMeshBase (std::unique_ptr< MeshBase > mesh_base) |
virtual void | init () |
virtual unsigned int | spatialDimension () const |
virtual unsigned int | effectiveSpatialDimension () const |
unsigned int | getBlocksMaxDimension (const std::vector< SubdomainName > &blocks) const |
std::vector< BoundaryID > | getBoundaryIDs (const Elem *const elem, const unsigned short int side) const |
const std::set< BoundaryID > & | getBoundaryIDs () const |
std::vector< BoundaryID > | getBoundaryIDs (const std::vector< BoundaryName > &boundary_name, bool generate_unknown=false) const |
const Elem * | getLowerDElem (const Elem *, unsigned short int) const |
unsigned int | getHigherDSide (const Elem *elem) const |
void | buildNodeList () |
void | buildBndElemList () |
const std::map< dof_id_type, std::vector< dof_id_type > > & | nodeToElemMap () |
const std::map< dof_id_type, std::vector< dof_id_type > > & | nodeToActiveSemilocalElemMap () |
virtual bnd_node_iterator | bndNodesBegin () |
virtual bnd_node_iterator | bndNodesEnd () |
virtual bnd_elem_iterator | bndElemsBegin () |
virtual bnd_elem_iterator | bndElemsEnd () |
void | buildNodeListFromSideList () |
void | buildSideList (std::vector< dof_id_type > &el, std::vector< unsigned short int > &sl, std::vector< boundary_id_type > &il) |
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > | buildSideList () |
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > | buildActiveSideList () const |
unsigned int | sideWithBoundaryID (const Elem *const elem, const BoundaryID boundary_id) const |
MeshBase::node_iterator | localNodesBegin () |
MeshBase::const_node_iterator | localNodesBegin () const |
MeshBase::node_iterator | localNodesEnd () |
MeshBase::const_node_iterator | localNodesEnd () const |
MeshBase::element_iterator | activeLocalElementsBegin () |
MeshBase::const_element_iterator | activeLocalElementsBegin () const |
const MeshBase::element_iterator | activeLocalElementsEnd () |
const MeshBase::const_element_iterator | activeLocalElementsEnd () const |
virtual dof_id_type | nNodes () const |
virtual dof_id_type | nElem () const |
virtual dof_id_type | nLocalNodes () const |
virtual dof_id_type | nActiveElem () const |
virtual dof_id_type | nActiveLocalElem () const |
virtual SubdomainID | nSubdomains () const |
virtual unsigned int | nPartitions () const |
virtual bool | skipPartitioning () const |
virtual bool | skipNoncriticalPartitioning () const |
virtual dof_id_type | maxNodeId () const |
virtual dof_id_type | maxElemId () const |
virtual const Node & | node (const dof_id_type i) const |
virtual Node & | node (const dof_id_type i) |
virtual const Node & | nodeRef (const dof_id_type i) const |
virtual Node & | nodeRef (const dof_id_type i) |
virtual const Node * | nodePtr (const dof_id_type i) const |
virtual Node * | nodePtr (const dof_id_type i) |
virtual const Node * | queryNodePtr (const dof_id_type i) const |
virtual Node * | queryNodePtr (const dof_id_type i) |
virtual Elem * | elem (const dof_id_type i) |
virtual const Elem * | elem (const dof_id_type i) const |
virtual Elem * | elemPtr (const dof_id_type i) |
virtual const Elem * | elemPtr (const dof_id_type i) const |
virtual Elem * | queryElemPtr (const dof_id_type i) |
virtual const Elem * | queryElemPtr (const dof_id_type i) const |
bool | prepared () const |
virtual void | prepared (bool state) |
void | needsPrepareForUse () |
void | meshChanged () |
virtual void | onMeshChanged () |
void | cacheChangedLists () |
ConstElemPointerRange * | refinedElementRange () const |
ConstElemPointerRange * | coarsenedElementRange () const |
const std::vector< const Elem *> & | coarsenedElementChildren (const Elem *elem) const |
void | updateActiveSemiLocalNodeRange (std::set< dof_id_type > &ghosted_elems) |
bool | isSemiLocal (Node *const node) const |
const std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > & | getBoundariesToElems () const |
const std::unordered_map< boundary_id_type, std::unordered_set< dof_id_type > > & | getBoundariesToActiveSemiLocalElemIds () const |
std::unordered_set< dof_id_type > | getBoundaryActiveSemiLocalElemIds (BoundaryID bid) const |
std::unordered_set< dof_id_type > | getBoundaryActiveNeighborElemIds (BoundaryID bid) const |
bool | isBoundaryFullyExternalToSubdomains (BoundaryID bid, const std::set< SubdomainID > &blk_group) const |
const std::set< SubdomainID > & | meshSubdomains () const |
const std::set< BoundaryID > & | meshBoundaryIds () const |
const std::set< BoundaryID > & | meshSidesetIds () const |
const std::set< BoundaryID > & | meshNodesetIds () const |
void | setBoundaryToNormalMap (std::unique_ptr< std::map< BoundaryID, RealVectorValue >> boundary_map) |
void | setBoundaryToNormalMap (std::map< BoundaryID, RealVectorValue > *boundary_map) |
void | setMeshBoundaryIDs (std::set< BoundaryID > boundary_IDs) |
const RealVectorValue & | getNormalByBoundaryID (BoundaryID id) const |
bool | prepare (const MeshBase *mesh_to_clone) |
void | update () |
unsigned int | uniformRefineLevel () const |
void | setUniformRefineLevel (unsigned int, bool deletion=true) |
bool | skipDeletionRepartitionAfterRefine () const |
bool | skipRefineWhenUseSplit () const |
void | addGhostedBoundary (BoundaryID boundary_id) |
void | setGhostedBoundaryInflation (const std::vector< Real > &inflation) |
const std::set< unsigned int > & | getGhostedBoundaries () const |
const std::vector< Real > & | getGhostedBoundaryInflation () const |
void | ghostGhostedBoundaries () |
void | needGhostGhostedBoundaries (bool needghost) |
unsigned int | getPatchSize () const |
unsigned int | getGhostingPatchSize () const |
unsigned int | getMaxLeafSize () const |
void | setPatchUpdateStrategy (Moose::PatchUpdateType patch_update_strategy) |
const Moose::PatchUpdateType & | getPatchUpdateStrategy () const |
libMesh::BoundingBox | getInflatedProcessorBoundingBox (Real inflation_multiplier=0.01) const |
operator libMesh::MeshBase & () | |
operator const libMesh::MeshBase & () const | |
MeshBase & | getMesh () |
MeshBase & | getMesh (const std::string &name) |
const MeshBase & | getMesh () const |
const MeshBase & | getMesh (const std::string &name) const |
const MeshBase * | getMeshPtr () const |
void | printInfo (std::ostream &os=libMesh::out, const unsigned int verbosity=0) const |
const std::set< SubdomainID > & | getNodeBlockIds (const Node &node) const |
const std::vector< dof_id_type > & | getNodeList (boundary_id_type nodeset_id) const |
const Node * | addUniqueNode (const Point &p, Real tol=1e-6) |
Node * | addQuadratureNode (const Elem *elem, const unsigned short int side, const unsigned int qp, BoundaryID bid, const Point &point) |
Node * | getQuadratureNode (const Elem *elem, const unsigned short int side, const unsigned int qp) |
void | clearQuadratureNodes () |
BoundaryID | getBoundaryID (const BoundaryName &boundary_name) const |
SubdomainID | getSubdomainID (const SubdomainName &subdomain_name) const |
std::vector< SubdomainID > | getSubdomainIDs (const std::vector< SubdomainName > &subdomain_names) const |
std::set< SubdomainID > | getSubdomainIDs (const std::set< SubdomainName > &subdomain_names) const |
void | setSubdomainName (SubdomainID subdomain_id, const SubdomainName &name) |
const std::string & | getSubdomainName (SubdomainID subdomain_id) const |
std::vector< SubdomainName > | getSubdomainNames (const std::vector< SubdomainID > &subdomain_ids) const |
void | setBoundaryName (BoundaryID boundary_id, BoundaryName name) |
const std::string & | getBoundaryName (BoundaryID boundary_id) |
void | buildPeriodicNodeMap (std::multimap< dof_id_type, dof_id_type > &periodic_node_map, unsigned int var_number, libMesh::PeriodicBoundaries *pbs) const |
void | buildPeriodicNodeSets (std::map< BoundaryID, std::set< dof_id_type >> &periodic_node_sets, unsigned int var_number, libMesh::PeriodicBoundaries *pbs) const |
Real | dimensionWidth (unsigned int component) const |
bool | detectOrthogonalDimRanges (Real tol=1e-6) |
void | addPeriodicVariable (unsigned int var_num, BoundaryID primary, BoundaryID secondary) |
bool | isTranslatedPeriodic (unsigned int nonlinear_var_num, unsigned int component) const |
RealVectorValue | minPeriodicVector (unsigned int nonlinear_var_num, Point p, Point q) const |
Real | minPeriodicDistance (unsigned int nonlinear_var_num, Point p, Point q) const |
const std::pair< BoundaryID, BoundaryID > * | getPairedBoundaryMapping (unsigned int component) |
void | buildRefinementAndCoarseningMaps (Assembly *assembly) |
const std::vector< std::vector< QpMap > > & | getRefinementMap (const Elem &elem, int parent_side, int child, int child_side) |
const std::vector< std::pair< unsigned int, QpMap > > & | getCoarseningMap (const Elem &elem, int input_side) |
void | changeBoundaryId (const boundary_id_type old_id, const boundary_id_type new_id, bool delete_prev) |
const std::set< BoundaryID > & | getSubdomainBoundaryIds (const SubdomainID subdomain_id) const |
std::set< BoundaryID > | getSubdomainInterfaceBoundaryIds (const SubdomainID subdomain_id) const |
std::set< SubdomainID > | getBoundaryConnectedBlocks (const BoundaryID bid) const |
std::set< SubdomainID > | getBoundaryConnectedSecondaryBlocks (const BoundaryID bid) const |
std::set< SubdomainID > | getInterfaceConnectedBlocks (const BoundaryID bid) const |
const std::set< SubdomainID > & | getBlockConnectedBlocks (const SubdomainID subdomain_id) const |
bool | isBoundaryNode (dof_id_type node_id) const |
bool | isBoundaryNode (dof_id_type node_id, BoundaryID bnd_id) const |
bool | isBoundaryElem (dof_id_type elem_id) const |
bool | isBoundaryElem (dof_id_type elem_id, BoundaryID bnd_id) const |
void | errorIfDistributedMesh (std::string name) const |
virtual bool | isDistributedMesh () const |
bool | isParallelTypeForced () const |
void | setParallelType (ParallelType parallel_type) |
ParallelType | getParallelType () const |
const MooseEnum & | partitionerName () const |
bool | isPartitionerForced () const |
void | allowRecovery (bool allow) |
void | setCustomPartitioner (libMesh::Partitioner *partitioner) |
bool | isRegularOrthogonal () |
bool | hasSecondOrderElements () |
virtual std::unique_ptr< libMesh::PointLocatorBase > | getPointLocator () const |
virtual std::string | getFileName () const |
void | needsRemoteElemDeletion (bool need_delete) |
bool | needsRemoteElemDeletion () const |
void | allowRemoteElementRemoval (bool allow_removal) |
bool | allowRemoteElementRemoval () const |
void | deleteRemoteElements () |
bool | hasMeshBase () const |
bool | hasElementID (const std::string &id_name) const |
unsigned int | getElementIDIndex (const std::string &id_name) const |
dof_id_type | maxElementID (unsigned int elem_id_index) const |
dof_id_type | minElementID (unsigned int elem_id_index) const |
bool | areElemIDsIdentical (const std::string &id_name1, const std::string &id_name2) const |
std::set< dof_id_type > | getAllElemIDs (unsigned int elem_id_index) const |
std::set< dof_id_type > | getElemIDsOnBlocks (unsigned int elem_id_index, const std::set< SubdomainID > &blks) const |
std::unordered_map< dof_id_type, std::set< dof_id_type > > | getElemIDMapping (const std::string &from_id_name, const std::string &to_id_name) const |
void | cacheFaceInfoVariableOwnership () const |
void | cacheFVElementalDoFs () const |
void | computeFiniteVolumeCoords () const |
void | isDisplaced (bool is_displaced) |
bool | isDisplaced () const |
const std::map< boundary_id_type, std::vector< dof_id_type > > & | nodeSetNodes () const |
Moose::CoordinateSystemType | getCoordSystem (SubdomainID sid) const |
const std::map< SubdomainID, Moose::CoordinateSystemType > & | getCoordSystem () const |
Moose::CoordinateSystemType | getUniqueCoordSystem () const |
void | setCoordSystem (const std::vector< SubdomainName > &blocks, const MultiMooseEnum &coord_sys) |
void | setAxisymmetricCoordAxis (const MooseEnum &rz_coord_axis) |
void | setGeneralAxisymmetricCoordAxes (const std::vector< SubdomainName > &blocks, const std::vector< std::pair< Point, RealVectorValue >> &axes) |
const std::pair< Point, RealVectorValue > & | getGeneralAxisymmetricCoordAxis (SubdomainID subdomain_id) const |
bool | usingGeneralAxisymmetricCoordAxes () const |
unsigned int | getAxisymmetricRadialCoord () const |
void | checkCoordinateSystems () |
void | setCoordData (const MooseMesh &other_mesh) |
void | markFiniteVolumeInfoDirty () |
bool | isFiniteVolumeInfoDirty () const |
MooseAppCoordTransform & | coordTransform () |
const MooseUnits & | lengthUnit () const |
const std::unordered_map< std::pair< const Elem *, unsigned short int >, const Elem *> & | getLowerDElemMap () const |
bool | isSplit () const |
void | buildFiniteVolumeInfo () const |
void | setupFiniteVolumeMeshData () const |
void | doingPRefinement (bool doing_p_refinement) |
bool | doingPRefinement () const |
unsigned int | maxPLevel () const |
unsigned int | maxHLevel () const |
const std::vector< QpMap > & | getPRefinementMap (const Elem &elem) const |
const std::vector< QpMap > & | getPRefinementSideMap (const Elem &elem) const |
const std::vector< QpMap > & | getPCoarseningMap (const Elem &elem) const |
const std::vector< QpMap > & | getPCoarseningSideMap (const Elem &elem) const |
void | buildPRefinementAndCoarseningMaps (Assembly *assembly) |
bool | isLowerD (const SubdomainID subdomain_id) const |
bool | hasLowerD () const |
const std::set< SubdomainID > & | interiorLowerDBlocks () const |
const std::set< SubdomainID > & | boundaryLowerDBlocks () const |
bool | getConstructNodeListFromSideList () |
virtual bool | enabled () const |
std::shared_ptr< MooseObject > | getSharedPtr () |
std::shared_ptr< const MooseObject > | getSharedPtr () const |
MooseApp & | getMooseApp () const |
const std::string & | type () const |
virtual const std::string & | name () const |
std::string | typeAndName () const |
std::string | errorPrefix (const std::string &error_type) const |
void | callMooseError (std::string msg, const bool with_prefix) const |
MooseObjectParameterName | uniqueParameterName (const std::string ¶meter_name) const |
const InputParameters & | parameters () const |
MooseObjectName | uniqueName () const |
const T & | getParam (const std::string &name) const |
std::vector< std::pair< T1, T2 > > | getParam (const std::string ¶m1, const std::string ¶m2) const |
const T * | queryParam (const std::string &name) const |
const T & | getRenamedParam (const std::string &old_name, const std::string &new_name) const |
T | getCheckedPointerParam (const std::string &name, const std::string &error_string="") const |
bool | isParamValid (const std::string &name) const |
bool | isParamSetByUser (const std::string &nm) const |
void | paramError (const std::string ¶m, Args... args) const |
void | paramWarning (const std::string ¶m, Args... args) const |
void | paramInfo (const std::string ¶m, Args... args) const |
void | connectControllableParams (const std::string ¶meter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const |
void | mooseError (Args &&... args) const |
void | mooseErrorNonPrefixed (Args &&... args) const |
void | mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const |
void | mooseWarning (Args &&... args) const |
void | mooseWarningNonPrefixed (Args &&... args) const |
void | mooseDeprecated (Args &&... args) const |
void | mooseInfo (Args &&... args) const |
std::string | getDataFileName (const std::string ¶m) const |
std::string | getDataFileNameByName (const std::string &relative_path) const |
std::string | getDataFilePath (const std::string &relative_path) const |
PerfGraph & | perfGraph () |
libMesh::ConstElemRange * | getActiveLocalElementRange () |
libMesh::ConstElemRange * | getActiveLocalElementRange () |
libMesh::NodeRange * | getActiveNodeRange () |
libMesh::NodeRange * | getActiveNodeRange () |
SemiLocalNodeRange * | getActiveSemiLocalNodeRange () const |
SemiLocalNodeRange * | getActiveSemiLocalNodeRange () const |
libMesh::ConstNodeRange * | getLocalNodeRange () |
libMesh::ConstNodeRange * | getLocalNodeRange () |
libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode *> * | getBoundaryNodeRange () |
libMesh::StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode *> * | getBoundaryNodeRange () |
libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement *> * | getBoundaryElementRange () |
libMesh::StoredRange< MooseMesh::const_bnd_elem_iterator, const BndElement *> * | getBoundaryElementRange () |
virtual Real | getMinInDimension (unsigned int component) const |
virtual Real | getMinInDimension (unsigned int component) const |
virtual Real | getMaxInDimension (unsigned int component) const |
virtual Real | getMaxInDimension (unsigned int component) const |
bool | isCustomPartitionerRequested () const |
bool | isCustomPartitionerRequested () const |
void | setIsCustomPartitionerRequested (bool cpr) |
void | setIsCustomPartitionerRequested (bool cpr) |
unsigned int | nFace () const |
unsigned int | nFace () const |
const std::vector< const FaceInfo *> & | faceInfo () const |
const FaceInfo * | faceInfo (const Elem *elem, unsigned int side) const |
const std::vector< const FaceInfo *> & | faceInfo () const |
const FaceInfo * | faceInfo (const Elem *elem, unsigned int side) const |
face_info_iterator | ownedFaceInfoBegin () |
face_info_iterator | ownedFaceInfoBegin () |
face_info_iterator | ownedFaceInfoEnd () |
face_info_iterator | ownedFaceInfoEnd () |
elem_info_iterator | ownedElemInfoBegin () |
elem_info_iterator | ownedElemInfoBegin () |
elem_info_iterator | ownedElemInfoEnd () |
elem_info_iterator | ownedElemInfoEnd () |
const ElemInfo & | elemInfo (const dof_id_type id) const |
const ElemInfo & | elemInfo (const dof_id_type id) const |
const std::vector< const ElemInfo *> & | elemInfoVector () const |
const std::vector< const ElemInfo *> & | elemInfoVector () const |
const std::vector< FaceInfo > & | allFaceInfo () const |
const std::vector< FaceInfo > & | allFaceInfo () const |
const Parallel::Communicator & | comm () const |
processor_id_type | n_processors () const |
processor_id_type | processor_id () const |
Static Public Member Functions | |
static InputParameters | validParams () |
static void | setSubdomainName (MeshBase &mesh, SubdomainID subdomain_id, const SubdomainName &name) |
static void | changeBoundaryId (MeshBase &mesh, const boundary_id_type old_id, const boundary_id_type new_id, bool delete_prev) |
static MooseEnum | partitioning () |
static MooseEnum | elemTypes () |
static void | setPartitioner (MeshBase &mesh_base, MooseEnum &partitioner, bool use_distributed_mesh, const InputParameters ¶ms, MooseObject &context_obj) |
Public Attributes | |
const ConsoleStream | _console |
Protected Types | |
typedef std::vector< BndNode *>::iterator | bnd_node_iterator_imp |
typedef std::vector< BndNode *>::const_iterator | const_bnd_node_iterator_imp |
typedef std::vector< BndElement *>::iterator | bnd_elem_iterator_imp |
typedef std::vector< BndElement *>::const_iterator | const_bnd_elem_iterator_imp |
Protected Member Functions | |
void | createNodeHorizBasedData (std::multimap< SubdomainID, SubdomainID > bonding_block_pairs, std::multimap< SubdomainID, SubdomainID > non_bonding_block_pairs) |
Function to create neighbors and other data for each material point with given horizon. More... | |
bool | checkInterface (SubdomainID pdnode_blockID_i, SubdomainID pdnode_blockID_j, std::multimap< SubdomainID, SubdomainID > blockID_pairs) |
Function to check existence of interface between two blocks. More... | |
void | createNeighborHorizonBasedData () |
Function to create node neighbors and other data for each material point based on NEIGHBOR_HORIZON based horizon partition for deformation gradient calculation. More... | |
bool | checkPointInsideRectangle (Point point, Point rec_p1, Point rec_p2, Real rec_height, Real tol=0) |
Function to check whether a material point falls within a given rectangular crack geometry. More... | |
bool | checkCrackIntersectBond (Point crack_p1, Point crack_p2, Real crack_width, Point bond_p1, Point bond_p2) |
Function to check whether a bond crosses crack surface. More... | |
bool | checkSegmentIntersectSegment (Point seg1_p1, Point seg1_p2, Point seg2_p1, Point seg2_p2) |
Function to check whether a segment crosses another segment. More... | |
void | cacheInfo () |
void | freeBndNodes () |
void | freeBndElems () |
void | setPartitionerHelper (MeshBase *mesh=nullptr) |
T & | declareRestartableData (const std::string &data_name, Args &&... args) |
ManagedValue< T > | declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args) |
const T & | getRestartableData (const std::string &data_name) const |
T & | declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args) |
T & | declareRecoverableData (const std::string &data_name, Args &&... args) |
T & | declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args) |
T & | declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args) |
std::string | restartableName (const std::string &data_name) const |
PerfID | registerTimedSection (const std::string §ion_name, const unsigned int level) const |
PerfID | registerTimedSection (const std::string §ion_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const |
std::string | timedSectionName (const std::string §ion_name) const |
Peridynamics mesh class.
Definition at line 20 of file PeridynamicsMesh.h.
PeridynamicsMesh::PeridynamicsMesh | ( | const InputParameters & | parameters | ) |
Definition at line 41 of file PeridynamicsMesh.C.
|
default |
|
overridevirtual |
Implements MooseMesh.
Definition at line 112 of file PeridynamicsMesh.C.
|
protected |
Function to check whether a bond crosses crack surface.
crack_p1 | Crack starting point |
crack_p2 | Crack ending point |
crack_width | Crack width |
bond_p1 | Bond starting point |
bond_p2 | Bond ending point |
Definition at line 566 of file PeridynamicsMesh.C.
Referenced by createNodeHorizBasedData().
|
protected |
Function to check existence of interface between two blocks.
blockID_i | & blockID_j IDs of two querying blocks |
blockID_pairs | ID pairs of neighboring blocks |
Definition at line 316 of file PeridynamicsMesh.C.
Referenced by createNodeHorizBasedData().
|
protected |
Function to check whether a material point falls within a given rectangular crack geometry.
point | The querying point |
rec_p1 | The center of one edge of a rectangle |
rec_p2 | The center of the opposite edge of the retangle |
rec_height | The distance between the rest two edges of the rectangle |
tol | Acceptable tolerence |
Definition at line 540 of file PeridynamicsMesh.C.
Referenced by createNodeHorizBasedData().
|
protected |
Function to check whether a segment crosses another segment.
seg1_p1 | The starting point of segment 1 |
seg1_p2 | The ending point of segment 1 |
seg2_p1 | The starting point of segment 2 |
seg2_p2 | The ending point of segment 2 |
Definition at line 601 of file PeridynamicsMesh.C.
Referenced by checkCrackIntersectBond().
|
protected |
Function to create node neighbors and other data for each material point based on NEIGHBOR_HORIZON based horizon partition for deformation gradient calculation.
Definition at line 340 of file PeridynamicsMesh.C.
Referenced by createPeridynamicsMeshData().
|
protected |
Function to create neighbors and other data for each material point with given horizon.
bonding_block_pairs | ID pairs of blocks to be connected via interfacial bonds |
non_bonding_block_pairs | ID pairs of blocks not to be connected |
Definition at line 246 of file PeridynamicsMesh.C.
Referenced by createPeridynamicsMeshData().
void PeridynamicsMesh::createPeridynamicsMeshData | ( | MeshBase & | fe_mesh, |
std::set< dof_id_type > | converted_elem_id, | ||
std::multimap< SubdomainID, SubdomainID > | bonding_block_pairs, | ||
std::multimap< SubdomainID, SubdomainID > | non_bonding_block_pairs | ||
) |
Function to assign values to member variables (PD mesh data) of this class this function will be called in the PD mesh generator class.
fe_mesh | The finite element mesh based on which the peridynamics mesh will be created |
converted_elem_id | The IDs of finite elements to be converted to peridynamics mesh |
Definition at line 143 of file PeridynamicsMesh.C.
Referenced by MeshGeneratorPD::generate().
|
overridevirtual |
Reimplemented from MooseMesh.
Definition at line 125 of file PeridynamicsMesh.C.
Referenced by RBMPresetOldValuePD::shouldApply().
std::vector< dof_id_type > PeridynamicsMesh::getBondDeformationGradientNeighbors | ( | dof_id_type | node_id, |
dof_id_type | neighbor_id | ||
) |
Function to return indices of neighbors used in formulation of bond-associated deformation gradient for bond connecting node_id and neighbor_id.
node_id | The ID of the node providing the neighbor list |
neighbor_id | The ID of the node querying the neighbor list |
Definition at line 399 of file PeridynamicsMesh.C.
std::vector< dof_id_type > PeridynamicsMesh::getBonds | ( | dof_id_type | node_id | ) |
Function to return the bond number connected with node node_id.
node_id | The querying node index |
Definition at line 390 of file PeridynamicsMesh.C.
Referenced by SingularShapeTensorEliminatorUserObjectPD::checkShapeTensorSingularity(), NodalRankTwoPD::computeRankTwoTensors(), GeneralizedPlaneStrainUserObjectOSPD::execute(), GhostElemPD::ghostElements(), and RBMPresetOldValuePD::shouldApply().
Real PeridynamicsMesh::getBoundaryOffset | ( | dof_id_type | node_id | ) |
Function to return offset for boundary nodes.
node_id | The querying node index |
Definition at line 515 of file PeridynamicsMesh.C.
Referenced by BoundaryOffsetPD::computeValue().
Real PeridynamicsMesh::getHorizon | ( | dof_id_type | node_id | ) |
Function to return horizon size.
node_id | The querying node index |
Definition at line 506 of file PeridynamicsMesh.C.
Referenced by SingularShapeTensorEliminatorUserObjectPD::checkShapeTensorSingularity(), NodalRankTwoPD::computeRankTwoTensors(), PeridynamicsKernelBase::prepare(), and PeridynamicsMaterialBase::setupMeshRelatedData().
Real PeridynamicsMesh::getHorizonSubsetVolume | ( | dof_id_type | node_id, |
dof_id_type | neighbor_id | ||
) |
Function to return the volume of a horizon subset for bond-associated deformation gradient calculation for bond connecting node node_id and its neighbor neighbor_id.
node_id | The ID of the node |
neighbor_id | The ID of the querying neighbor in the list of node node_id |
Definition at line 464 of file PeridynamicsMesh.C.
Real PeridynamicsMesh::getHorizonSubsetVolumeFraction | ( | dof_id_type | node_id, |
dof_id_type | neighbor_id | ||
) |
Function to return the volume fraction of a horizon subset used for bond-associated deformation gradient calculation for bond connecting node node_id and its neighbor neighbor_id.
node_id | The ID of the node |
neighbor_id | The ID of the querying neighbor in the list of node node_id |
Definition at line 485 of file PeridynamicsMesh.C.
Referenced by GeneralizedPlaneStrainUserObjectNOSPD::execute(), and PeridynamicsKernelBase::prepare().
Real PeridynamicsMesh::getHorizonSubsetVolumeSum | ( | dof_id_type | node_id | ) |
Function to return the summation of all horizon subset volumes for node node_id.
node_id | The querying node index |
Definition at line 476 of file PeridynamicsMesh.C.
Real PeridynamicsMesh::getHorizonVolume | ( | dof_id_type | node_id | ) |
Function to return summation of neighbor nodal volumes for node node_id.
node_id | The querying node index |
Definition at line 455 of file PeridynamicsMesh.C.
Referenced by NodalDamageIndexPD::computeValue(), PeridynamicsKernelBase::prepare(), and PeridynamicsMaterialBase::setupMeshRelatedData().
dof_id_type PeridynamicsMesh::getNeighborIndex | ( | dof_id_type | node_i, |
dof_id_type | node_j | ||
) |
Function to return the local neighbor index of node_j from node_i's neighbor list.
node_i | The ID of the node providing the neighbor list for query |
node_j | The ID of the node querying the neighbor index |
Definition at line 376 of file PeridynamicsMesh.C.
Referenced by NodalRankTwoUserObjectBasePD::computeValue(), GeneralizedPlaneStrainUserObjectNOSPD::execute(), and PeridynamicsKernelBase::prepare().
std::vector< dof_id_type > PeridynamicsMesh::getNeighbors | ( | dof_id_type | node_id | ) |
Function to return neighbor nodes indices for node node_id.
node_id | The querying node index |
Definition at line 370 of file PeridynamicsMesh.C.
Referenced by SingularShapeTensorEliminatorUserObjectPD::checkShapeTensorSingularity(), HeatSourceBPD::computeLocalResidual(), NodalRankTwoPD::computeRankTwoTensors(), MeshGeneratorPD::generate(), and GhostElemPD::ghostElements().
Real PeridynamicsMesh::getNeighborWeight | ( | dof_id_type | node_id, |
dof_id_type | neighbor_id | ||
) |
Function to return normalized weight for neighbor neighbor_id of node node_id based on predefined weight function.
node_id | The ID of the node |
neighbor_id | The ID of the querying neighbor in the list of node node_id |
Definition at line 524 of file PeridynamicsMesh.C.
Referenced by NodalRankTwoUserObjectBasePD::computeValue().
Real PeridynamicsMesh::getNodeAverageSpacing | ( | dof_id_type | node_id | ) |
Function to return the average spacing between node node_id with its most adjacent neighbors.
node_id | The querying node index |
Definition at line 497 of file PeridynamicsMesh.C.
SubdomainID PeridynamicsMesh::getNodeBlockID | ( | dof_id_type | node_id | ) |
Function to return block ID for node node_id.
node_id | The querying node index |
Definition at line 416 of file PeridynamicsMesh.C.
Referenced by MeshGeneratorPD::generate().
Point PeridynamicsMesh::getNodeCoord | ( | dof_id_type | node_id | ) |
Function to return coordinates for node node_id.
node_id | The querying node index |
Definition at line 431 of file PeridynamicsMesh.C.
Referenced by SingularShapeTensorEliminatorUserObjectPD::checkShapeTensorSingularity(), MechanicsMaterialBasePD::computeBondCurrentLength(), NodalRankTwoPD::computeRankTwoTensors(), GeneralizedPlaneStrainUserObjectNOSPD::execute(), GeneralizedPlaneStrainUserObjectOSPD::execute(), PeridynamicsKernelBase::prepare(), and PeridynamicsMaterialBase::setupMeshRelatedData().
Real PeridynamicsMesh::getNodeVolume | ( | dof_id_type | node_id | ) |
Function to return nodal volume for node node_id.
node_id | The querying node index |
Definition at line 446 of file PeridynamicsMesh.C.
Referenced by SingularShapeTensorEliminatorUserObjectPD::checkShapeTensorSingularity(), NodalRankTwoPD::computeRankTwoTensors(), NodalDamageIndexPD::computeValue(), NodalVolumePD::computeValue(), GeneralizedPlaneStrainUserObjectOSPD::execute(), GeneralizedPlaneStrainUserObjectNOSPD::execute(), NodalIntegralPostprocessorBasePD::execute(), PeridynamicsKernelBase::prepare(), and PeridynamicsMaterialBase::setupMeshRelatedData().
std::vector< dof_id_type > PeridynamicsMesh::getPDNodeIDToFEElemIDMap | ( | ) |
Function to return the correspondence between PD node IDs and FE element IDs.
Definition at line 440 of file PeridynamicsMesh.C.
dof_id_type PeridynamicsMesh::nPDBonds | ( | ) | const |
Function to return number of PD Edge elements.
Definition at line 137 of file PeridynamicsMesh.C.
Referenced by MeshGeneratorPD::generate().
dof_id_type PeridynamicsMesh::nPDNodes | ( | ) | const |
Function to return number of PD nodes.
Definition at line 131 of file PeridynamicsMesh.C.
Referenced by MeshGeneratorPD::generate().
|
delete |
|
overridevirtual |
Implements MooseMesh.
Definition at line 106 of file PeridynamicsMesh.C.
void PeridynamicsMesh::setNodeBlockID | ( | SubdomainID | id | ) |
Function to set block ID for all PD nodes.
id | The subdomain ID for all PD nodes |
Definition at line 425 of file PeridynamicsMesh.C.
Referenced by MeshGeneratorPD::generate().
|
static |
Definition at line 17 of file PeridynamicsMesh.C.
|
protected |
Definition at line 189 of file PeridynamicsMesh.h.
Referenced by createNeighborHorizonBasedData().
|
protected |
Offset of each boundary node to its original FE element boundary edge or face.
Definition at line 234 of file PeridynamicsMesh.h.
Referenced by createPeridynamicsMeshData(), and getBoundaryOffset().
|
protected |
Definition at line 195 of file PeridynamicsMesh.h.
Referenced by createNodeHorizBasedData(), and PeridynamicsMesh().
|
protected |
Definition at line 194 of file PeridynamicsMesh.h.
Referenced by createNodeHorizBasedData(), and PeridynamicsMesh().
|
protected |
Definition at line 196 of file PeridynamicsMesh.h.
Referenced by createNodeHorizBasedData(), and PeridynamicsMesh().
|
protected |
Neighbor lists for deformation gradient calculation using bond-associated horizon.
Definition at line 225 of file PeridynamicsMesh.h.
Referenced by createNeighborHorizonBasedData(), createPeridynamicsMeshData(), and getBondDeformationGradientNeighbors().
|
protected |
Mesh dimension.
Definition at line 200 of file PeridynamicsMesh.h.
Referenced by createPeridynamicsMeshData(), dimension(), and getBondDeformationGradientNeighbors().
|
protected |
Information for crack generation.
Definition at line 193 of file PeridynamicsMesh.h.
Referenced by PeridynamicsMesh().
|
protected |
Definition at line 187 of file PeridynamicsMesh.h.
Referenced by createPeridynamicsMeshData(), and PeridynamicsMesh().
|
protected |
Definition at line 188 of file PeridynamicsMesh.h.
Referenced by createPeridynamicsMeshData().
|
protected |
Horizon size control parameters.
Definition at line 186 of file PeridynamicsMesh.h.
Referenced by createPeridynamicsMeshData().
|
protected |
Number of total bonds.
Definition at line 206 of file PeridynamicsMesh.h.
Referenced by createPeridynamicsMeshData(), and nPDBonds().
|
protected |
Number of total material points.
Definition at line 203 of file PeridynamicsMesh.h.
Referenced by createNeighborHorizonBasedData(), createNodeHorizBasedData(), createPeridynamicsMeshData(), getBondDeformationGradientNeighbors(), getBonds(), getHorizon(), getHorizonSubsetVolume(), getHorizonSubsetVolumeFraction(), getHorizonSubsetVolumeSum(), getHorizonVolume(), getNeighborWeight(), getNodeAverageSpacing(), getNodeBlockID(), getNodeCoord(), getNodeVolume(), nPDNodes(), and setNodeBlockID().
|
protected |
Definition at line 210 of file PeridynamicsMesh.h.
Referenced by createPeridynamicsMeshData(), and getNodeAverageSpacing().
|
protected |
Definition at line 214 of file PeridynamicsMesh.h.
Referenced by createNodeHorizBasedData(), createPeridynamicsMeshData(), getNodeBlockID(), and setNodeBlockID().
|
protected |
Bond lists associated with material points.
Definition at line 222 of file PeridynamicsMesh.h.
Referenced by createPeridynamicsMeshData(), and getBonds().
|
protected |
Data associated with each peridynamics node.
Definition at line 209 of file PeridynamicsMesh.h.
Referenced by createNeighborHorizonBasedData(), createNodeHorizBasedData(), createPeridynamicsMeshData(), getNeighborWeight(), and getNodeCoord().
|
protected |
Definition at line 215 of file PeridynamicsMesh.h.
Referenced by createPeridynamicsMeshData(), and getPDNodeIDToFEElemIDMap().
|
protected |
Definition at line 211 of file PeridynamicsMesh.h.
Referenced by createNeighborHorizonBasedData(), createNodeHorizBasedData(), createPeridynamicsMeshData(), getHorizon(), and getNeighborWeight().
|
protected |
Definition at line 213 of file PeridynamicsMesh.h.
Referenced by createNodeHorizBasedData(), createPeridynamicsMeshData(), and getHorizonVolume().
|
protected |
Neighbor lists for each material point determined using the horizon.
Definition at line 219 of file PeridynamicsMesh.h.
Referenced by createNeighborHorizonBasedData(), createNodeHorizBasedData(), createPeridynamicsMeshData(), getBondDeformationGradientNeighbors(), getHorizonSubsetVolume(), getHorizonSubsetVolumeFraction(), getNeighborIndex(), getNeighbors(), and getNeighborWeight().
|
protected |
Volume of horizon subsets for bond-associated deformation gradients at a node.
Definition at line 228 of file PeridynamicsMesh.h.
Referenced by createNeighborHorizonBasedData(), createPeridynamicsMeshData(), getHorizonSubsetVolume(), and getHorizonSubsetVolumeFraction().
|
protected |
Summation of volumes of all horizon subsets at a node.
Definition at line 231 of file PeridynamicsMesh.h.
Referenced by createNeighborHorizonBasedData(), createPeridynamicsMeshData(), getHorizonSubsetVolumeFraction(), and getHorizonSubsetVolumeSum().
|
protected |
Definition at line 212 of file PeridynamicsMesh.h.
Referenced by createNeighborHorizonBasedData(), createNodeHorizBasedData(), createPeridynamicsMeshData(), and getNodeVolume().
|
protected |
normalizer for calculating weighted values at a node from elemental values within its horizon
Definition at line 237 of file PeridynamicsMesh.h.
Referenced by createNodeHorizBasedData(), createPeridynamicsMeshData(), and getNeighborWeight().