https://mooseframework.inl.gov
MeshGeneratorPD.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "MeshGenerator.h"
13 
14 // Forward declarations
15 
20 {
21 public:
23 
25 
30  std::unique_ptr<MeshBase> generate();
31 
32 protected:
34  unsigned int _pd_blk_offset_number = 1000;
35 
37  unsigned int _phantom_blk_offset_number = 10000;
38 
40  unsigned int _pd_nodeset_offset_number = 999;
41 
43  std::unique_ptr<MeshBase> & _input;
44 
48  std::set<SubdomainID> _blks_to_pd;
49 
53  std::set<SubdomainID> _blks_as_fe;
54 
58 
62 
67  std::set<boundary_id_type> _fe_sidesets_for_pd_construction;
68 
72  std::multimap<SubdomainID, SubdomainID> _pd_bonding_blk_pairs;
73 
77  std::multimap<SubdomainID, SubdomainID> _pd_non_bonding_blk_pairs;
78 
82 };
unsigned int _pd_nodeset_offset_number
a number used to offset the boundary nodeset ID after being converted into PD nodeset ...
std::set< boundary_id_type > _fe_sidesets_for_pd_construction
std::multimap< SubdomainID, SubdomainID > _pd_non_bonding_blk_pairs
std::set< SubdomainID > _blks_to_pd
MeshGeneratorPD(const InputParameters &parameters)
std::multimap< SubdomainID, SubdomainID > _pd_bonding_blk_pairs
bool _merge_pd_interfacial_blks
flag to specify whether a single block should be used for all PD interfacial blocks this is used when...
bool _merge_pd_blks
flag to specify whether to combine converted PD mesh blocks into a single mesh block or not this is u...
bool _retain_fe_mesh
flag to specify whether the FE mesh should be retained or not in addition to newly created PD mesh ...
bool _has_non_bonding_blk_pairs
pairs of converted FE block IDs when only certain blocks need NOT to be connected this is usually use...
bool _has_blks_to_pd
block ID(s) of input FE mesh when only certain block(s) needs to be converted to PD mesh this is used...
bool _has_sidesets_to_pd
list of sideset ID(s) to be constructed based on converted PD mesh if the _construct_pd_sideset is tr...
std::unique_ptr< MeshBase > & _input
Reference to the input finite element mesh.
bool _has_blks_as_fe
block ID(s) of input FE mesh when only certain block(s) needs NOT to be converted to PD mesh this is ...
static InputParameters validParams()
unsigned int _phantom_blk_offset_number
a number used to offset the block ID for phantom elements
std::set< SubdomainID > _blks_as_fe
bool _has_bonding_blk_pairs
pairs of converted FE block IDs when only certain blocks need to be connected using interfacial bonds...
unsigned int _pd_blk_offset_number
a number used to offset the block ID after being converted into PD mesh
const InputParameters & parameters() const
Generate peridynamics mesh based on finite element mesh.
bool _construct_pd_sideset
flag to specify whether PD sideset should be constructed or not
std::unique_ptr< MeshBase > generate()
Function to convert the finite element mesh to peridynamics mesh.