v0.14.0
Loading...
Searching...
No Matches
Classes | Typedefs | Functions | Variables
multifield_plasticity.cpp File Reference
#include <MoFEM.hpp>
#include <chrono>
#include <boost/tokenizer.hpp>
#include <IntegrationRules.hpp>
#include <BlockMatData.hpp>
#include <MultifieldPlasticity.hpp>
#include <BasicFiniteElements.hpp>
#include <AnalyticalSurfaces.hpp>
#include <RigidBodies.hpp>
#include <BasicFeTools.hpp>
#include <MatrixFunction.hpp>
#include <ElasticOperators.hpp>
#include <PlasticOperators.hpp>
#include <ContactOperators.hpp>
#include <RotatingFrameOperators.hpp>
#include <DualBase.hpp>
#include <DefaultParams.hpp>

Go to the source code of this file.

Classes

struct  MeasureTime
 
struct  ContactPlasticity
 
struct  ContactPlasticity::ProblemData
 
struct  ContactPlasticity::MMonitor
 

Typedefs

using OpLogStrainMatrixLhs
 
using OpStiffnessMatrixLhs
 
using OpBodyForce
 
using OpMixDivULhs
 
using OpLambdaGraULhs
 
using OpMixDivURhs
 
using OpMiXLambdaGradURhs
 
using OpMixUTimesDivLambdaRhs
 
using OpMixUTimesLambdaRhs
 
using OpSpringLhs
 
using OpSpringLhsNoFS
 
using OpSpringRhs
 
using OpInertiaForce
 
using OpCentrifugalForce2
 

Functions

int main (int argc, char *argv[])
 

Variables

BlockParamDatacache
 
std::map< int, BlockParamDatamat_blocks
 
constexpr bool TEST_H1_SPACE = false
 
EntityType zero_type = TEST_H1_SPACE ? MBVERTEX : MBTET
 
FieldSpace space_test = (TEST_H1_SPACE ? H1 : L2)
 
static char help [] = "...\n\n"
 

Detailed Description

Multifield plasticity with contact

Definition in file multifield_plasticity.cpp.

Typedef Documentation

◆ OpBodyForce

using OpBodyForce

◆ OpCentrifugalForce2

◆ OpInertiaForce

◆ OpLambdaGraULhs

◆ OpLogStrainMatrixLhs

◆ OpMixDivULhs

using OpMixDivULhs

◆ OpMixDivURhs

using OpMixDivURhs

◆ OpMiXLambdaGradURhs

◆ OpMixUTimesDivLambdaRhs

◆ OpMixUTimesLambdaRhs

◆ OpSpringLhs

using OpSpringLhs

◆ OpSpringLhsNoFS

◆ OpSpringRhs

using OpSpringRhs

◆ OpStiffnessMatrixLhs

Function Documentation

◆ main()

int main ( int argc,
char * argv[] )

< mesh database

< mesh database interface

< finite element database

< finite element database insterface

Definition at line 2605 of file multifield_plasticity.cpp.

2605 {
2606
2607#include <DefaultParams.hpp>
2608
2609 MoFEM::Core::Initialize(&argc, &argv, param_file.c_str(), help);
2610
2611 try {
2612
2613 DMType dm_name = "DMMOFEM";
2614 CHKERR DMRegister_MoFEM(dm_name);
2615
2616 moab::Core mb_instance; ///< mesh database
2617 moab::Interface &moab = mb_instance; ///< mesh database interface
2618
2619 MoFEM::Core core(moab); ///< finite element database
2620 MoFEM::Interface &m_field = core; ///< finite element database insterface
2621
2622 Simple *simple = m_field.getInterface<Simple>();
2623 simple->getProblemName() = "Multifield plasticity";
2624 CHKERR simple->getOptions();
2625
2626 ContactPlasticity ex(m_field);
2628
2629 PetscBool is_partitioned = PETSC_FALSE;
2630 CHKERR PetscOptionsGetBool(PETSC_NULL, "", "-is_partitioned",
2631 &is_partitioned, PETSC_NULL);
2632 if (is_partitioned) {
2633 CHKERR simple->loadFile();
2634 } else {
2635 if (m_field.get_comm_size() > 1 && true) {
2636 CHKERR simple->loadFile("", "");
2638 } else
2639 CHKERR simple->loadFile("");
2640 }
2641
2642 // Add meshsets with material and boundary conditions
2643 CHKERR m_field.getInterface<MeshsetsManager>()->setMeshsetFromFile();
2644
2645 CHKERR ex.loadMeshBlockSets();
2647 if (ex.data.scale_params)
2648 for (auto &mit : mat_blocks)
2649 CHKERR mit.second.scaleParameters();
2650
2651 CHKERR ex.runProblem();
2652 }
2654
2656}
std::string param_file
void simple(double P1[], double P2[], double P3[], double c[], const int N)
Definition acoustic.cpp:69
#define CATCH_ERRORS
Catch errors.
#define CHKERR
Inline error check.
PetscErrorCode DMRegister_MoFEM(const char sname[])
Register MoFEM problem.
Definition DMMoFEM.cpp:47
std::map< int, BlockParamData > mat_blocks
static char help[]
BlockParamData * cache
PetscErrorCode PetscOptionsGetBool(PetscOptions *, const char pre[], const char name[], PetscBool *bval, PetscBool *set)
MoFEMErrorCode getOptionsFromCommandLine()
static MoFEMErrorCode getAnalysisParameters()
static MoFEMErrorCode myMeshPartition(MoFEM::Interface &m_field)
virtual int get_comm_size() const =0
Core (interface) class.
Definition Core.hpp:82
static MoFEMErrorCode Initialize(int *argc, char ***args, const char file[], const char help[])
Initializes the MoFEM database PETSc, MOAB and MPI.
Definition Core.cpp:72
static MoFEMErrorCode Finalize()
Checks for options to be called at the conclusion of the program.
Definition Core.cpp:112
Deprecated interface functions.
Interface for managing meshsets containing materials and boundary conditions.
Simple interface for fast problem set-up.
Definition Simple.hpp:27
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface refernce to pointer of interface.

Variable Documentation

◆ cache

Definition at line 87 of file multifield_plasticity.cpp.

◆ help

char help[] = "...\n\n"
static

Definition at line 2603 of file multifield_plasticity.cpp.

◆ mat_blocks

std::map<int, BlockParamData> mat_blocks

Definition at line 88 of file multifield_plasticity.cpp.

◆ space_test

FieldSpace space_test = (TEST_H1_SPACE ? H1 : L2)

Definition at line 105 of file multifield_plasticity.cpp.

◆ TEST_H1_SPACE

constexpr bool TEST_H1_SPACE = false
constexpr

Definition at line 103 of file multifield_plasticity.cpp.

◆ zero_type

EntityType zero_type = TEST_H1_SPACE ? MBVERTEX : MBTET

Definition at line 104 of file multifield_plasticity.cpp.