https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
21public:
23
25
30 std::unique_ptr<MeshBase> generate();
31
32protected:
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};
Generate peridynamics mesh based on finite element mesh.
static InputParameters validParams()
std::multimap< SubdomainID, SubdomainID > _pd_bonding_blk_pairs
bool _has_bonding_blk_pairs
pairs of converted FE block IDs when only certain blocks need to be connected using interfacial bonds...
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 ...
unsigned int _phantom_blk_offset_number
a number used to offset the block ID for phantom elements
bool _retain_fe_mesh
flag to specify whether the FE mesh should be retained or not in addition to newly created PD mesh
std::set< boundary_id_type > _fe_sidesets_for_pd_construction
bool _construct_pd_sideset
flag to specify whether PD sideset should be constructed or not
bool _merge_pd_interfacial_blks
flag to specify whether a single block should be used for all PD interfacial blocks this is used when...
unsigned int _pd_nodeset_offset_number
a number used to offset the boundary nodeset ID after being converted into PD nodeset
std::multimap< SubdomainID, SubdomainID > _pd_non_bonding_blk_pairs
std::unique_ptr< MeshBase > & _input
Reference to the input finite element mesh.
unsigned int _pd_blk_offset_number
a number used to offset the block ID after being converted into PD mesh
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 _has_sidesets_to_pd
list of sideset ID(s) to be constructed based on converted PD mesh if the _construct_pd_sideset is tr...
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...
std::unique_ptr< MeshBase > generate()
Function to convert the finite element mesh to peridynamics mesh.
std::set< SubdomainID > _blks_as_fe
std::set< SubdomainID > _blks_to_pd
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...
const InputParameters & parameters() const