v0.14.0 |
#include <users_modules/fracture_mechanics/src/CrackPropagation.hpp>
Classes | |
struct | ArcLengthSnesCtx |
struct | BothSurfaceConstrains |
Constrains material displacement on both sides. More... | |
struct | FaceOrientation |
Determine face orientation. More... | |
struct | PostProcVertexMethod |
operator to post-process results on crack front nodes More... | |
Public Member Functions | |
MoFEMErrorCode | getInterfaceVersion (Version &version) const |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
Getting interface of core database. More... | |
CrackPropagation (MoFEM::Interface &m_field, const int approx_order=2, const int geometry_order=1) | |
Constructor of Crack Propagation, prints fracture module version and registers the three interfaces used to solve fracture problem, i.e. CrackPropagation, CPSolvers and CPMeshCut. More... | |
virtual | ~CrackPropagation () |
MoFEMErrorCode | getOptions () |
Get options form command line. More... | |
MoFEMErrorCode | tetsingReleaseEnergyCalculation () |
This is run with ctest. More... | |
int & | getNbLoadSteps () |
int | getNbLoadSteps () const |
double & | getLoadScale () |
double | getLoadScale () const |
int & | getNbCutSteps () |
int | getNbCutSteps () const |
MoFEMErrorCode | readMedFile () |
read mesh file More... | |
MoFEMErrorCode | saveEachPart (const std::string prefix, const Range &ents) |
Save entities on ech processor. More... | |
Public Member Functions inherited from MoFEM::UnknownInterface | |
virtual MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const =0 |
template<class IFACE > | |
MoFEMErrorCode | registerInterface (bool error_if_registration_failed=true) |
Register interface. More... | |
template<class IFACE > | |
MoFEMErrorCode | getInterface (IFACE *&iface) const |
Get interface reference to pointer of interface. More... | |
template<class IFACE > | |
MoFEMErrorCode | getInterface (IFACE **const iface) const |
Get interface pointer to pointer of interface. More... | |
template<class IFACE , typename boost::enable_if< boost::is_pointer< IFACE >, int >::type = 0> | |
IFACE | getInterface () const |
Get interface pointer to pointer of interface. More... | |
template<class IFACE , typename boost::enable_if< boost::is_reference< IFACE >, int >::type = 0> | |
IFACE | getInterface () const |
Get reference to interface. More... | |
template<class IFACE > | |
IFACE * | getInterface () const |
Function returning pointer to interface. More... | |
virtual | ~UnknownInterface ()=default |
Static Public Member Functions | |
static FTensor::Tensor2_symmetric< double, 3 > | analyticalStrainFunction (FTensor::Tensor1< FTensor::PackPtr< double *, 1 >, 3 > &t_coords) |
Static Public Member Functions inherited from MoFEM::UnknownInterface | |
static MoFEMErrorCode | getLibVersion (Version &version) |
Get library version. More... | |
static MoFEMErrorCode | getFileVersion (moab::Interface &moab, Version &version) |
Get database major version. More... | |
static MoFEMErrorCode | setFileVersion (moab::Interface &moab, Version version=Version(MoFEM_VERSION_MAJOR, MoFEM_VERSION_MINOR, MoFEM_VERSION_BUILD)) |
Get database major version. More... | |
static MoFEMErrorCode | getInterfaceVersion (Version &version) |
Get database major version. More... | |
Public Attributes | |
Version | fileVersion |
boost::shared_ptr< WrapMPIComm > | moabCommWorld |
MoFEM::Interface & | mField |
bool | setSingularCoordinates |
int | approxOrder |
int | geometryOrder |
double | gC |
Griffith energy. More... | |
double | griffithE |
Griffith stability parameter. More... | |
double | griffithR |
Griffith regularisation parameter. More... | |
double | betaGc |
heterogeneous Griffith energy exponent More... | |
PetscBool | isGcHeterogeneous |
flag for heterogeneous gc More... | |
PetscBool | isPartitioned |
PetscBool | propagateCrack |
If true crack propagation is calculated. More... | |
int | refAtCrackTip |
int | refOrderAtTip |
PetscBool | addSingularity |
PetscBool | otherSideConstrains |
PetscBool | isPressureAle |
If true surface pressure is considered in ALE. More... | |
PetscBool | areSpringsAle |
If true surface spring is considered in ALE. More... | |
PetscBool | isSurfaceForceAle |
If true surface pressure is considered in ALE. More... | |
PetscBool | ignoreMaterialForce |
If true surface pressure is considered in ALE. More... | |
std::string | mwlsApproxFile |
Name of file with internal stresses. More... | |
std::string | mwlsStressTagName |
Name of tag with internal stresses. More... | |
std::string | mwlsEigenStressTagName |
Name of tag with eigen stresses. More... | |
std::string | mwlsRhoTagName |
Name of tag with density. More... | |
int | residualStressBlock |
Block on which residual stress is applied. More... | |
int | densityMapBlock |
std::string | configFile |
bool | isStressTagSavedOnNodes |
double | partitioningWeightPower |
PetscBool | resetMWLSCoeffsEveryPropagationStep |
PetscBool | addAnalyticalInternalStressOperators |
PetscBool | solveEigenStressProblem |
Solve eigen problem. More... | |
PetscBool | useEigenPositionsSimpleContact |
int | postProcLevel |
level of postprocessing (amount of output files) More... | |
int | startStep |
double | crackFrontLength |
double | crackSurfaceArea |
std::map< std::string, BitRefLevel > | mapBitLevel |
Static Public Attributes | |
static bool | debug = false |
static bool | parallelReadAndBroadcast |
Resolve shared entities and partition mesh | |
MoFEMErrorCode | partitionMesh (BitRefLevel bit1, BitRefLevel bit2, int verb=QUIET, const bool debug=false) |
partotion mesh More... | |
MoFEMErrorCode | resolveShared (const Range &tets, Range &proc_ents, const int verb=QUIET, const bool debug=false) |
resolve shared entities More... | |
MoFEMErrorCode | resolveSharedBitRefLevel (const BitRefLevel bit, const int verb=QUIET, const bool debug=false) |
resole shared entities by bit level More... | |
Set bit level for material problem | |
MoFEMErrorCode | setCrackFrontBitLevel (BitRefLevel from_bit, BitRefLevel bit, const int nb_levels=2, const bool debug=false) |
Set bit ref level for entities adjacent to crack front. More... | |
Build problem | |
MoFEMErrorCode | buildProblemFields (const BitRefLevel &bit1, const BitRefLevel &mask1, const BitRefLevel &bit2, const int verb=QUIET, const bool debug=false) |
Build problem fields. More... | |
MoFEMErrorCode | buildProblemFiniteElements (BitRefLevel bit1, BitRefLevel bit2, std::vector< int > surface_ids, const int verb=QUIET, const bool debug=false) |
Build problem finite elements. More... | |
MoFEMErrorCode | createProblemDataStructures (const std::vector< int > surface_ids, const int verb=QUIET, const bool debug=false) |
Construct problem data structures. More... | |
MoFEMErrorCode | createDMs (SmartPetscObj< DM > &dm_elastic, SmartPetscObj< DM > &dm_eigen_elastic, SmartPetscObj< DM > &dm_material, SmartPetscObj< DM > &dm_crack_propagation, SmartPetscObj< DM > &dm_material_forces, SmartPetscObj< DM > &dm_surface_projection, SmartPetscObj< DM > &dm_crack_srf_area, std::vector< int > surface_ids, std::vector< std::string > fe_surf_proj_list) |
Crate DMs for all problems and sub problems. More... | |
MoFEMErrorCode | deleteEntities (const int verb=QUIET, const bool debug=false) |
Build fields | |
MoFEMErrorCode | buildElasticFields (const BitRefLevel bit, const BitRefLevel mask=BitRefLevel().set(), const bool proc_only=true, const bool build_fields=true, const int verb=QUIET, const bool debug=false) |
Declate fields for elastic analysis. More... | |
MoFEMErrorCode | buildArcLengthField (const BitRefLevel bit, const bool build_fields=true, const int verb=QUIET) |
Declate field for arc-length. More... | |
MoFEMErrorCode | buildSurfaceFields (const BitRefLevel bit, const bool proc_only=true, const bool build_fields=true, const int verb=QUIET, const bool debug=false) |
build fields with Lagrange multipliers to constrain surfaces More... | |
MoFEMErrorCode | buildEdgeFields (const BitRefLevel bit, const bool proc_only=true, const bool build_fields=true, const int verb=QUIET, const bool debug=false) |
build fields with Lagrange multipliers to constrain edges More... | |
MoFEMErrorCode | buildCrackSurfaceFieldId (const BitRefLevel bit, const bool proc_only=true, const bool build_fields=true, const int verb=QUIET, const bool debug=false) |
declare crack surface files More... | |
MoFEMErrorCode | buildCrackFrontFieldId (const BitRefLevel bit, const bool build_fields=true, const int verb=QUIET, const bool debug=false) |
declare crack surface files More... | |
MoFEMErrorCode | buildBothSidesFieldId (const BitRefLevel bit_spatial, const BitRefLevel bit_material, const bool proc_only=false, const bool build_fields=true, const int verb=QUIET, const bool debug=false) |
Lagrange multipliers field which constrains material displacements. More... | |
MoFEMErrorCode | zeroLambdaFields () |
Zero fields with lagrange multipliers. More... | |
Build finite elements | |
MoFEMErrorCode | declareElasticFE (const BitRefLevel bit1, const BitRefLevel mask1, const BitRefLevel bit2, const BitRefLevel mask2, const bool add_forces=true, const bool proc_only=true, const int verb=QUIET) |
declare elastic finite elements More... | |
MoFEMErrorCode | declareArcLengthFE (const BitRefLevel bits, const int verb=QUIET) |
create arc-length element entity and declare elemets More... | |
MoFEMErrorCode | declareExternalForcesFE (const BitRefLevel bit, const BitRefLevel mask=BitRefLevel().set(), const bool proc_only=true) |
MoFEMErrorCode | declareSurfaceForceAleFE (const BitRefLevel bit, const BitRefLevel mask=BitRefLevel().set(), const bool proc_only=true) |
Declare FE for pressure BC in ALE formulation (in material domain) More... | |
MoFEMErrorCode | declarePressureAleFE (const BitRefLevel bit, const BitRefLevel mask=BitRefLevel().set(), const bool proc_only=true) |
Declare FE for pressure BC in ALE formulation (in material domain) More... | |
MoFEMErrorCode | declareSpringsAleFE (const BitRefLevel bit, const BitRefLevel mask=BitRefLevel().set(), const bool proc_only=true) |
Declare FE for spring BC in ALE formulation (in material domain) More... | |
MoFEMErrorCode | declareSimpleContactAleFE (const BitRefLevel bit, const BitRefLevel mask=BitRefLevel().set(), const bool proc_only=true) |
Declare FE for pressure BC in ALE formulation (in material domain) More... | |
MoFEMErrorCode | declareMaterialFE (const BitRefLevel bit, const BitRefLevel mask=BitRefLevel().set(), const bool proc_only=true, const bool verb=QUIET) |
declare material finite elements More... | |
MoFEMErrorCode | declareFrontFE (const BitRefLevel bit, const BitRefLevel mask=BitRefLevel().set(), const bool proc_only=true, const bool verb=QUIET) |
MoFEMErrorCode | declareBothSidesFE (const BitRefLevel bit_spatial, const BitRefLevel bit_material, const BitRefLevel mask=BitRefLevel().set(), const bool proc_only=true, const bool verb=QUIET) |
MoFEMErrorCode | declareSmoothingFE (const BitRefLevel bit, const BitRefLevel mask=BitRefLevel().set(), const bool proc_only=true, const bool verb=QUIET) |
declare mesh smoothing finite elements More... | |
MoFEMErrorCode | declareSurfaceFE (std::string fe_name, const BitRefLevel bit, const BitRefLevel mask, const std::vector< int > &ids, const bool proc_only=true, const int verb=QUIET, const bool debug=false) |
declare surface sliding elements More... | |
MoFEMErrorCode | declareEdgeFE (std::string fe_name, const BitRefLevel bit, const BitRefLevel mask, const bool proc_only=true, const int verb=QUIET, const bool debug=false) |
MoFEMErrorCode | declareCrackSurfaceFE (std::string fe_name, const BitRefLevel bit, const BitRefLevel mask, const bool proc_only=true, const int verb=QUIET, const bool debug=false) |
Create DMs & problems | |
MoFEMErrorCode | createCrackPropagationDM (SmartPetscObj< DM > &dm, const std::string prb_name, SmartPetscObj< DM > dm_elastic, SmartPetscObj< DM > dm_material, const BitRefLevel bit, const BitRefLevel mask, const std::vector< std::string > fe_list) |
Create DM by composition of elastic DM and material DM. More... | |
MoFEMErrorCode | createElasticDM (SmartPetscObj< DM > &dm, const std::string prb_name, const BitRefLevel bit, const BitRefLevel mask=BitRefLevel().set()) |
Create elastic problem DM. More... | |
MoFEMErrorCode | createEigenElasticDM (SmartPetscObj< DM > &dm, const std::string prb_name, const BitRefLevel bit, const BitRefLevel mask=BitRefLevel().set()) |
Create elastic problem DM. More... | |
MoFEMErrorCode | createBcDM (SmartPetscObj< DM > &dm, const std::string prb_name, const BitRefLevel bit, const BitRefLevel mask=BitRefLevel().set()) |
Create problem to calculate boundary conditions. More... | |
MoFEMErrorCode | createMaterialDM (SmartPetscObj< DM > &dm, const std::string prb_name, const BitRefLevel bit, const BitRefLevel mask, const std::vector< std::string > fe_list, const bool debug=false) |
Create DM fto calculate material problem. More... | |
MoFEMErrorCode | createMaterialForcesDM (SmartPetscObj< DM > &dm, SmartPetscObj< DM > dm_material, const std::string prb_name, const int verb=QUIET) |
Create DM for calculation of material forces (sub DM of DM material) More... | |
MoFEMErrorCode | createSurfaceProjectionDM (SmartPetscObj< DM > &dm, SmartPetscObj< DM > dm_material, const std::string prb_name, const std::vector< int > surface_ids, const std::vector< std::string > fe_list, const int verb=QUIET) |
create DM to calculate projection matrices (sub DM of DM material) More... | |
MoFEMErrorCode | createCrackFrontAreaDM (SmartPetscObj< DM > &dm, SmartPetscObj< DM > dm_material, const std::string prb_name, const bool verb=QUIET) |
create DM to calculate Griffith energy More... | |
Create finite element instances | |
MoFEMErrorCode | assembleElasticDM (const std::string mwls_stress_tag_name, const int verb=QUIET, const bool debug=false) |
create elastic finite element instance for spatial assembly More... | |
MoFEMErrorCode | assembleElasticDM (const int verb=QUIET, const bool debug=false) |
create elastic finite element instance for spatial assembly More... | |
MoFEMErrorCode | addElasticFEInstancesToSnes (DM dm, Mat m, Vec q, Vec f, boost::shared_ptr< FEMethod > arc_method=boost::shared_ptr< FEMethod >(), boost::shared_ptr< ArcLengthCtx > arc_ctx=nullptr, const int verb=QUIET, const bool debug=false) |
MoFEMErrorCode | assembleMaterialForcesDM (DM dm, const int verb=QUIET, const bool debug=false) |
create material element instance More... | |
MoFEMErrorCode | assembleSmootherForcesDM (DM dm, const std::vector< int > ids, const int verb=QUIET, const bool debug=false) |
create smoothing element instance More... | |
MoFEMErrorCode | assembleCouplingForcesDM (DM dm, const int verb=QUIET, const bool debug=false) |
assemble coupling element instances More... | |
MoFEMErrorCode | addMaterialFEInstancesToSnes (DM dm, const bool fix_crack_front, const int verb=QUIET, const bool debug=false) |
add material elements instances to SNES More... | |
MoFEMErrorCode | addSmoothingFEInstancesToSnes (DM dm, const bool fix_crack_front, const int verb=QUIET, const bool debug=false) |
add softening elements instances to SNES More... | |
MoFEMErrorCode | addPropagationFEInstancesToSnes (DM dm, boost::shared_ptr< FEMethod > arc_method, boost::shared_ptr< ArcLengthCtx > arc_ctx, const std::vector< int > &surface_ids, const int verb=QUIET, const bool debug=false) |
add finite element to SNES for crack propagation problem More... | |
MoFEMErrorCode | testJacobians (const BitRefLevel bit, const BitRefLevel mask, tangent_tests test) |
test LHS Jacobians More... | |
MoFEMErrorCode | addMWLSStressOperators (boost::shared_ptr< CrackFrontElement > &fe_rhs, boost::shared_ptr< CrackFrontElement > &fe_lhs) |
MoFEMErrorCode | addMWLSDensityOperators (boost::shared_ptr< CrackFrontElement > &fe_rhs, boost::shared_ptr< CrackFrontElement > &fe_lhs) |
MoFEMErrorCode | updateMaterialFixedNode (const bool fix_front, const bool fix_small_g, const bool debug=false) |
Update fixed nodes. More... | |
Assemble and calculate | |
MoFEMErrorCode | calculateElasticEnergy (DM dm, const std::string msg="") |
assemble elastic part of matrix, by running elastic finite element instance More... | |
MoFEMErrorCode | calculateMaterialForcesDM (DM dm, Vec q, Vec f, const int verb=QUIET, const bool debug=false) |
assemble material forces, by running material finite element instance More... | |
MoFEMErrorCode | calculateSmoothingForcesDM (DM dm, Vec q, Vec f, const int verb=QUIET, const bool debug=false) |
assemble smoothing forces, by running material finite element instance More... | |
MoFEMErrorCode | calculateSmoothingForceFactor (const int verb=QUIET, const bool debug=true) |
MoFEMErrorCode | calculateSurfaceProjectionMatrix (DM dm_front, DM dm_project, const std::vector< int > &ids, const int verb=QUIET, const bool debug=false) |
assemble projection matrices More... | |
MoFEMErrorCode | calculateFrontProjectionMatrix (DM dm_surface, DM dm_project, const int verb=QUIET, const bool debug=false) |
assemble crack front projection matrix (that constrains crack area growth) More... | |
MoFEMErrorCode | projectMaterialForcesDM (DM dm_project, Vec f, Vec f_proj, const int verb=QUIET, const bool debug=false) |
project material forces along the crack elongation direction More... | |
MoFEMErrorCode | calculateGriffithForce (DM dm, const double gc, Vec f_griffith, const int verb=QUIET, const bool debug=false) |
calculate Griffith (driving) force More... | |
MoFEMErrorCode | projectGriffithForce (DM dm, Vec f_griffith, Vec f_griffith_proj, const int verb=QUIET, const bool debug=false) |
project Griffith forces More... | |
MoFEMErrorCode | calculateReleaseEnergy (DM dm, Vec f_material_proj, Vec f_griffith_proj, Vec f_lambda, const double gc, const int verb=QUIET, const bool debug=true) |
calculate release energy More... | |
Solvers | |
MoFEMErrorCode | solveElasticDM (DM dm, SNES snes, Mat m, Vec q, Vec f, bool snes_set_up, Mat *shell_m) |
solve elastic problem More... | |
MoFEMErrorCode | solvePropagationDM (DM dm, DM dm_elastic, SNES snes, Mat m, Vec q, Vec f) |
solve crack propagation problem More... | |
Postprocess results | |
MoFEMErrorCode | savePositionsOnCrackFrontDM (DM dm, Vec q, const int verb=QUIET, const bool debug=false) |
MoFEMErrorCode | writeCrackFont (const BitRefLevel &bit, const int step) |
MoFEMErrorCode | postProcessDM (DM dm, const int step, const std::string fe_name, const bool approx_internal_stress) |
post-process results for elastic solution More... | |
Set data from mesh to vectors and back | |
MoFEMErrorCode | setFieldFromCoords (const std::string field_name) |
set field from node positions More... | |
MoFEMErrorCode | setMaterialPositionFromCoords () |
set material field from nodes More... | |
MoFEMErrorCode | setSpatialPositionFromCoords () |
set spatial field from nodes More... | |
MoFEMErrorCode | setCoordsFromField (const std::string field_name="MESH_NODE_POSITIONS") |
set coordinates from field More... | |
MoFEMErrorCode | setSingularDofs (const string field_name, const int verb=QUIET) |
set singular dofs (on edges adjacent to crack front) from geometry More... | |
MoFEMErrorCode | setSingularElementMatrialPositions (const int verb=QUIET) |
set singular dofs of material field (on edges adjacent to crack front) from geometry More... | |
MoFEMErrorCode | unsetSingularElementMatrialPositions () |
remove singularity More... | |
MoFEMErrorCode | cleanSingularElementMatrialPositions () |
set maetrial field order to one More... | |
Auxiliary method | |
boost::shared_ptr< DofEntity > | arcLengthDof |
MoFEMErrorCode | getArcLengthDof () |
set pointer to arc-length DOF More... | |
boost::shared_ptr< ArcLengthCtx > & | getArcCtx () |
boost::shared_ptr< ArcLengthCtx > & | getEigenArcCtx () |
boost::shared_ptr< FEMethod > | getFrontArcLengthControl (boost::shared_ptr< ArcLengthCtx > arc_ctx) |
boost::shared_ptr< AnalyticalDirichletBC::DirichletBC > | getAnalyticalDirichletBc () |
boost::shared_ptr< MWLSApprox > & | getMWLSApprox () |
Pointers to finite element instances | |
bool | onlyHooke |
True if only Hooke material is applied. More... | |
PetscBool | onlyHookeFromOptions |
True if only Hooke material is applied. More... | |
boost::shared_ptr< NonlinearElasticElement > | elasticFe |
boost::shared_ptr< NonlinearElasticElement > | materialFe |
boost::shared_ptr< CrackFrontElement > | feLhs |
Integrate elastic FE. More... | |
boost::shared_ptr< CrackFrontElement > | feRhs |
Integrate elastic FE. More... | |
boost::shared_ptr< CrackFrontElement > | feMaterialRhs |
Integrate material stresses, assemble vector. More... | |
boost::shared_ptr< CrackFrontElement > | feMaterialLhs |
Integrate material stresses, assemble matrix. More... | |
boost::shared_ptr< CrackFrontElement > | feEnergy |
Integrate energy. More... | |
boost::shared_ptr< ConstrainMatrixCtx > | projSurfaceCtx |
Data structure to project on the body surface. More... | |
boost::shared_ptr< ConstrainMatrixCtx > | projFrontCtx |
Data structure to project on crack front. More... | |
boost::shared_ptr< MWLSApprox > | mwlsApprox |
boost::shared_ptr< NeumannForcesSurface::MyTriangleFE > | feMaterialAnaliticalTraction |
Surface elment to calculate tractions in material space. More... | |
boost::shared_ptr< DirichletSpatialPositionsBc > | spatialDirichletBc |
apply Dirichlet BC to sparial positions More... | |
boost::shared_ptr< AnalyticalDirichletBC::DirichletBC > | analyticalDirichletBc |
boost::shared_ptr< boost::ptr_map< string, NeumannForcesSurface > > | surfaceForces |
assemble surface forces More... | |
boost::shared_ptr< boost::ptr_map< string, NeumannForcesSurface > > | surfaceForceAle |
assemble surface pressure (ALE) More... | |
boost::shared_ptr< NeumannForcesSurface::DataAtIntegrationPts > | commonDataSurfaceForceAle |
common data at integration points (ALE) More... | |
boost::shared_ptr< boost::ptr_map< string, NeumannForcesSurface > > | surfacePressure |
assemble surface pressure More... | |
boost::shared_ptr< boost::ptr_map< string, NeumannForcesSurface > > | surfacePressureAle |
assemble surface pressure (ALE) More... | |
boost::shared_ptr< NeumannForcesSurface::DataAtIntegrationPts > | commonDataSurfacePressureAle |
common data at integration points (ALE) More... | |
boost::shared_ptr< boost::ptr_map< string, EdgeForce > > | edgeForces |
assemble edge forces More... | |
boost::shared_ptr< boost::ptr_map< string, NodalForce > > | nodalForces |
assemble nodal forces More... | |
boost::shared_ptr< FEMethod > | assembleFlambda |
assemble F_lambda vector More... | |
boost::shared_ptr< FEMethod > | zeroFlambda |
assemble F_lambda vector More... | |
boost::shared_ptr< CrackFrontElement > | feCouplingElasticLhs |
FE instance to assemble coupling terms. More... | |
boost::shared_ptr< CrackFrontElement > | feCouplingMaterialLhs |
FE instance to assemble coupling terms. More... | |
boost::shared_ptr< Smoother > | smootherFe |
boost::shared_ptr< Smoother::MyVolumeFE > | feSmootherRhs |
Integrate smoothing operators. More... | |
boost::shared_ptr< Smoother::MyVolumeFE > | feSmootherLhs |
Integrate smoothing operators. More... | |
boost::shared_ptr< VolumeLengthQuality< double > > | volumeLengthDouble |
boost::shared_ptr< VolumeLengthQuality< adouble > > | volumeLengthAdouble |
boost::shared_ptr< ObosleteUsersModules::TangentWithMeshSmoothingFrontConstrain > | tangentConstrains |
Constrains crack front in tangent directiona. More... | |
boost::shared_ptr< SurfaceSlidingConstrains::DriverElementOrientation > | skinOrientation |
boost::shared_ptr< SurfaceSlidingConstrains::DriverElementOrientation > | crackOrientation |
boost::shared_ptr< SurfaceSlidingConstrains::DriverElementOrientation > | contactOrientation |
map< int, boost::shared_ptr< SurfaceSlidingConstrains > > | surfaceConstrain |
map< int, boost::shared_ptr< EdgeSlidingConstrains > > | edgeConstrains |
boost::shared_ptr< BothSurfaceConstrains > | bothSidesConstrains |
boost::shared_ptr< BothSurfaceConstrains > | closeCrackConstrains |
boost::shared_ptr< BothSurfaceConstrains > | bothSidesContactConstrains |
boost::shared_ptr< DirichletFixFieldAtEntitiesBc > | fixMaterialEnts |
boost::shared_ptr< GriffithForceElement > | griffithForceElement |
boost::shared_ptr< GriffithForceElement::MyTriangleFE > | feGriffithForceRhs |
boost::shared_ptr< GriffithForceElement::MyTriangleFE > | feGriffithForceLhs |
boost::shared_ptr< GriffithForceElement::MyTriangleFEConstrainsDelta > | feGriffithConstrainsDelta |
boost::shared_ptr< GriffithForceElement::MyTriangleFEConstrains > | feGriffithConstrainsRhs |
boost::shared_ptr< GriffithForceElement::MyTriangleFEConstrains > | feGriffithConstrainsLhs |
boost::shared_ptr< boost::ptr_map< string, NeumannForcesSurface > > | analiticalSurfaceElement |
boost::shared_ptr< FaceElementForcesAndSourcesCore > | feSpringLhsPtr |
boost::shared_ptr< FaceElementForcesAndSourcesCore > | feSpringRhsPtr |
Entity ranges | |
Range | bitEnts |
Range | bitProcEnts |
Range | bodySkin |
Range | crackFaces |
Range | oneSideCrackFaces |
Range | otherSideCrackFaces |
Range | crackFront |
Range | crackFrontNodes |
Range | crackFrontNodesEdges |
Range | crackFrontNodesTris |
Range | crackFrontElements |
EntityHandle | arcLengthVertex |
Vertex associated with dof for arc-length control. More... | |
Auxiliary data | |
int | defaultMaterial |
int | nbLoadSteps |
int | nbCutSteps |
double | loadScale |
double | maxG1 |
double | maxJ |
double | fractionOfFixedNodes |
map< EntityHandle, double > | mapG1 |
hashmap of g1 - release energy at nodes More... | |
map< EntityHandle, double > | mapG3 |
hashmap of g3 - release energy at nodes More... | |
map< EntityHandle, double > | mapJ |
hashmap of J - release energy at nodes More... | |
map< EntityHandle, VectorDouble3 > | mapMatForce |
hashmap of material force at nodes More... | |
map< EntityHandle, VectorDouble3 > | mapGriffith |
hashmap of Griffith energy at nodes More... | |
map< EntityHandle, double > | mapSmoothingForceFactor |
bool | doSurfaceProjection |
double | smootherAlpha |
Controls mesh smoothing. More... | |
double | initialSmootherAlpha |
double | smootherGamma |
Controls mesh smoothing. More... | |
arc-length options | |
double | arcAlpha |
double | arcBeta |
double | arcS |
boost::shared_ptr< ArcLengthCtx > | arcCtx |
boost::shared_ptr< ArcLengthCtx > | arcEigenCtx |
Data for bone | |
double | rHo0 |
Reference density if bone is analyzed. More... | |
double | nBone |
Exponent parameter in bone density. More... | |
Interfaces | |
const boost::scoped_ptr< UnknownInterface > | cpSolversPtr |
const boost::scoped_ptr< UnknownInterface > | cpMeshCutPtr |
Cut/Refine/Split options | |
PetscBool | doCutMesh |
double | crackAccelerationFactor |
PetscBool | doElasticWithoutCrack |
Crack propagation data and methods
Definition at line 77 of file CrackPropagation.hpp.
FractureMechanics::CrackPropagation::CrackPropagation | ( | MoFEM::Interface & | m_field, |
const int | approx_order = 2 , |
||
const int | geometry_order = 1 |
||
) |
Constructor of Crack Propagation, prints fracture module version and registers the three interfaces used to solve fracture problem, i.e. CrackPropagation, CPSolvers and CPMeshCut.
m_field | interface to MoAB database |
approx_order | order of approximation space, default is 2 |
geometry_order | order of geometry, default is 1 (can be up to 2) |
Definition at line 521 of file CrackPropagation.cpp.
|
virtual |
Definition at line 586 of file CrackPropagation.cpp.
MoFEMErrorCode FractureMechanics::CrackPropagation::addElasticFEInstancesToSnes | ( | DM | dm, |
Mat | m, | ||
Vec | q, | ||
Vec | f, | ||
boost::shared_ptr< FEMethod > | arc_method = boost::shared_ptr<FEMethod>() , |
||
boost::shared_ptr< ArcLengthCtx > | arc_ctx = nullptr , |
||
const int | verb = QUIET , |
||
const bool | debug = false |
||
) |
Definition at line 4610 of file CrackPropagation.cpp.
MoFEMErrorCode FractureMechanics::CrackPropagation::addMaterialFEInstancesToSnes | ( | DM | dm, |
const bool | fix_crack_front, | ||
const int | verb = QUIET , |
||
const bool | debug = false |
||
) |
MoFEMErrorCode FractureMechanics::CrackPropagation::addMWLSDensityOperators | ( | boost::shared_ptr< CrackFrontElement > & | fe_rhs, |
boost::shared_ptr< CrackFrontElement > & | fe_lhs | ||
) |
Definition at line 5027 of file CrackPropagation.cpp.
MoFEMErrorCode FractureMechanics::CrackPropagation::addMWLSStressOperators | ( | boost::shared_ptr< CrackFrontElement > & | fe_rhs, |
boost::shared_ptr< CrackFrontElement > & | fe_lhs | ||
) |
Definition at line 4902 of file CrackPropagation.cpp.
MoFEMErrorCode FractureMechanics::CrackPropagation::addPropagationFEInstancesToSnes | ( | DM | dm, |
boost::shared_ptr< FEMethod > | arc_method, | ||
boost::shared_ptr< ArcLengthCtx > | arc_ctx, | ||
const std::vector< int > & | surface_ids, | ||
const int | verb = QUIET , |
||
const bool | debug = false |
||
) |
add finite element to SNES for crack propagation problem
Definition at line 6921 of file CrackPropagation.cpp.
MoFEMErrorCode FractureMechanics::CrackPropagation::addSmoothingFEInstancesToSnes | ( | DM | dm, |
const bool | fix_crack_front, | ||
const int | verb = QUIET , |
||
const bool | debug = false |
||
) |
|
static |
Definition at line 10030 of file CrackPropagation.cpp.
MoFEMErrorCode FractureMechanics::CrackPropagation::assembleCouplingForcesDM | ( | DM | dm, |
const int | verb = QUIET , |
||
const bool | debug = false |
||
) |
MoFEMErrorCode FractureMechanics::CrackPropagation::assembleElasticDM | ( | const int | verb = QUIET , |
const bool | debug = false |
||
) |
create elastic finite element instance for spatial assembly
verb | compilation parameter determining the amount of information printed (not in use here) |
debug | flag for debugging |
Definition at line 4601 of file CrackPropagation.cpp.
MoFEMErrorCode FractureMechanics::CrackPropagation::assembleElasticDM | ( | const std::string | mwls_stress_tag_name, |
const int | verb = QUIET , |
||
const bool | debug = false |
||
) |
create elastic finite element instance for spatial assembly
mwls_stress_tag_name | Name of internal stress tag |
close_crack | if true, crack surface is closed |
verb | compilation parameter determining the amount of information printed (not in use here) |
debug | flag for debugging |
Rhs
Lhs
Definition at line 3795 of file CrackPropagation.cpp.
MoFEMErrorCode FractureMechanics::CrackPropagation::assembleMaterialForcesDM | ( | DM | dm, |
const int | verb = QUIET , |
||
const bool | debug = false |
||
) |
create material element instance
Operators to assemble rhs
Definition at line 5531 of file CrackPropagation.cpp.
MoFEMErrorCode FractureMechanics::CrackPropagation::assembleSmootherForcesDM | ( | DM | dm, |
const std::vector< int > | ids, | ||
const int | verb = QUIET , |
||
const bool | debug = false |
||
) |
MoFEMErrorCode FractureMechanics::CrackPropagation::buildArcLengthField | ( | const BitRefLevel | bit, |
const bool | build_fields = true , |
||
const int | verb = QUIET |
||
) |
Declate field for arc-length.
bit | bit refinement level |
Definition at line 1726 of file CrackPropagation.cpp.
MoFEMErrorCode FractureMechanics::CrackPropagation::buildBothSidesFieldId | ( | const BitRefLevel | bit_spatial, |
const BitRefLevel | bit_material, | ||
const bool | proc_only = false , |
||
const bool | build_fields = true , |
||
const int | verb = QUIET , |
||
const bool | debug = false |
||
) |
Lagrange multipliers field which constrains material displacements.
Nodes on both sides are constrainded to have the same material displacements
Definition at line 1973 of file CrackPropagation.cpp.
MoFEMErrorCode FractureMechanics::CrackPropagation::buildCrackFrontFieldId | ( | const BitRefLevel | bit, |
const bool | build_fields = true , |
||
const int | verb = QUIET , |
||
const bool | debug = false |
||
) |