v0.15.0
Loading...
Searching...
No Matches
Classes | Typedefs | Functions | Variables
elastic.cpp File Reference

elastic example More...

#include <MoFEM.hpp>
#include <ElasticExample.hpp>
#include <ElasticSpring.hpp>
#include <FluidLevel.hpp>
#include <CalculateTraction.hpp>
#include <NaturalDomainBC.hpp>
#include <NaturalBoundaryBC.hpp>
#include <HookeOps.hpp>

Go to the source code of this file.

Classes

struct  DomainBCs
 [Define entities] More...
 
struct  BoundaryBCs
 Boundary conditions marker. More...
 
struct  PostProcEleByDim< 2 >
 
struct  PostProcEleByDim< 3 >
 
struct  Example
 [Example] More...
 
struct  SetUpSchur
 [Push operators to pipeline] More...
 
struct  SetUpSchurImpl
 

Typedefs

using EntData = EntitiesFieldData::EntData
 [Define entities]
 
using DomainEle = PipelineManager::ElementsAndOpsByDim< SPACE_DIM >::DomainEle
 
using BoundaryEle = PipelineManager::ElementsAndOpsByDim< SPACE_DIM >::BoundaryEle
 
using DomainEleOp = DomainEle::UserDataOperator
 
using BoundaryEleOp = BoundaryEle::UserDataOperator
 
using DomainRhsBCs = NaturalBC< DomainEleOp >::Assembly< A >::LinearForm< I >
 
using OpDomainRhsBCs = DomainRhsBCs::OpFlux< DomainBCs, 1, SPACE_DIM >
 
using BoundaryRhsBCs = NaturalBC< BoundaryEleOp >::Assembly< A >::LinearForm< I >
 
using OpBoundaryRhsBCs = BoundaryRhsBCs::OpFlux< BoundaryBCs, 1, SPACE_DIM >
 
using BoundaryLhsBCs = NaturalBC< BoundaryEleOp >::Assembly< A >::BiLinearForm< I >
 
using OpBoundaryLhsBCs = BoundaryLhsBCs::OpFlux< BoundaryBCs, 1, SPACE_DIM >
 
using PostProcEleDomain = PostProcEleByDim< SPACE_DIM >::PostProcEleDomain
 
using SideEle = PostProcEleByDim< SPACE_DIM >::SideEle
 
using PostProcEleBdy = PostProcEleByDim< SPACE_DIM >::PostProcEleBdy
 

Functions

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

Variables

constexpr int BASE_DIM = 1
 
constexpr int SPACE_DIM
 [Define dimension]
 
constexpr AssemblyType A
 [Define dimension]
 
constexpr IntegrationType I
 
static char help [] = "...\n\n"
 
constexpr double young_modulus = 1
 
constexpr double poisson_ratio = 0.3
 
constexpr double bulk_modulus_K = young_modulus / (3 * (1 - 2 * poisson_ratio))
 
constexpr double shear_modulus_G = young_modulus / (2 * (1 + poisson_ratio))
 
PetscBool is_plane_strain = PETSC_FALSE
 
static char help [] = "...\n\n"
 [Check]
 

Detailed Description

elastic example

Version
0.13.2
Date
2022-09-19

Definition in file elastic.cpp.

Typedef Documentation

◆ BoundaryEle

Definition at line 32 of file elastic.cpp.

◆ BoundaryEleOp

Definition at line 35 of file elastic.cpp.

◆ BoundaryLhsBCs

Definition at line 45 of file elastic.cpp.

◆ BoundaryRhsBCs

Definition at line 43 of file elastic.cpp.

◆ DomainEle

Definition at line 31 of file elastic.cpp.

◆ DomainEleOp

Definition at line 34 of file elastic.cpp.

◆ DomainRhsBCs

Definition at line 41 of file elastic.cpp.

◆ EntData

[Define entities]

Definition at line 30 of file elastic.cpp.

◆ OpBoundaryLhsBCs

Definition at line 46 of file elastic.cpp.

◆ OpBoundaryRhsBCs

Definition at line 44 of file elastic.cpp.

◆ OpDomainRhsBCs

Definition at line 42 of file elastic.cpp.

◆ PostProcEleBdy

Definition at line 64 of file elastic.cpp.

◆ PostProcEleDomain

Definition at line 62 of file elastic.cpp.

◆ SideEle

Definition at line 63 of file elastic.cpp.

Function Documentation

◆ main()

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

[Register MoFEM discrete manager in PETSc]

[Register MoFEM discrete manager in PETSc

[Create MoAB]

< mesh database

< mesh database interface

[Create MoAB]

[Create MoFEM]

< finite element database

< finite element database interface

[Create MoFEM]

[Example]

[Example]

[Register MoFEM discrete manager in PETSc]

[Register MoFEM discrete manager in PETSc

[Create MoAB]

< mesh database

< mesh database interface

[Create MoAB]

[Create MoFEM]

< finite element database

< finite element database interface

[Create MoFEM]

[Example]

[Example]

Definition at line 70 of file elastic.cpp.

78 {
79
80 Example(MoFEM::Interface &m_field) : mField(m_field) {}
81
82 MoFEMErrorCode runProblem();
83
84private:
85 MoFEM::Interface &mField;
86
87 boost::shared_ptr<MatrixDouble> vectorFieldPtr = nullptr;
88
89 MoFEMErrorCode readMesh();
90 MoFEMErrorCode setupProblem();
91 MoFEMErrorCode boundaryCondition();
92 MoFEMErrorCode assembleSystem();
93 MoFEMErrorCode solveSystem();
94 MoFEMErrorCode outputResults();
95 MoFEMErrorCode checkResults();
96};
97
98//! [Run problem]
109}
110//! [Run problem]
111
112//! [Read mesh]
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
[Example]
Definition plastic.cpp:216
MoFEMErrorCode boundaryCondition()
[Set up problem]
MoFEMErrorCode assembleSystem()
[Push operators to pipeline]
MoFEMErrorCode readMesh()
[Run problem]
MoFEMErrorCode checkResults()
[Postprocess results]
MoFEMErrorCode solveSystem()
[Solve]
MoFEMErrorCode runProblem()
[Run problem]
Definition plastic.cpp:256
MoFEMErrorCode setupProblem()
[Run problem]
Definition plastic.cpp:275
MoFEMErrorCode outputResults()
[Solve]
Deprecated interface functions.

Variable Documentation

◆ A

constexpr AssemblyType A
constexpr
Initial value:
? AssemblyType::BLOCK_SCHUR
AssemblyType
[Storage and set boundary conditions]
@ PETSC
Standard PETSc assembly.
#define SCHUR_ASSEMBLE
Definition contact.cpp:18

[Define dimension]

Examples
mofem/tutorials/adv-0/plastic.cpp, mofem/tutorials/vec-10/schur_elastic.cpp, plastic.cpp, and thermoplastic.cpp.

Definition at line 22 of file elastic.cpp.

◆ BASE_DIM

constexpr int BASE_DIM = 1
constexpr

Definition at line 16 of file elastic.cpp.

◆ bulk_modulus_K

constexpr double bulk_modulus_K = young_modulus / (3 * (1 - 2 * poisson_ratio))
constexpr

Definition at line 66 of file elastic.cpp.

◆ help [1/2]

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

Definition at line 68 of file elastic.cpp.

◆ help [2/2]

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

[Check]

Definition at line 708 of file elastic.cpp.

◆ I

constexpr IntegrationType I
constexpr
Initial value:
=
IntegrationType::GAUSS

Definition at line 26 of file elastic.cpp.

◆ is_plane_strain

PetscBool is_plane_strain = PETSC_FALSE

Definition at line 69 of file elastic.cpp.

◆ poisson_ratio

constexpr double poisson_ratio = 0.3
constexpr

Definition at line 65 of file elastic.cpp.

◆ shear_modulus_G

constexpr double shear_modulus_G = young_modulus / (2 * (1 + poisson_ratio))
constexpr

Definition at line 67 of file elastic.cpp.

◆ SPACE_DIM

constexpr int SPACE_DIM
constexpr
Initial value:
=
#define EXECUTABLE_DIMENSION
Definition plastic.cpp:13

[Define dimension]

Examples
mofem/tutorials/adv-0/plastic.cpp, mofem/tutorials/vec-10/schur_elastic.cpp, plastic.cpp, and thermoplastic.cpp.

Definition at line 19 of file elastic.cpp.

◆ young_modulus

constexpr double young_modulus = 1
constexpr

Definition at line 64 of file elastic.cpp.