v0.14.0
Classes | Public Member Functions | Public Attributes | List of all members
CohesiveElement::CohesiveInterfaceElement Struct Reference

Cohesive element implementation. More...

#include <users_modules/basic_finite_elements/cohesive_interface/src/CohesiveInterfaceElement.hpp>

Collaboration diagram for CohesiveElement::CohesiveInterfaceElement:
[legend]

Classes

struct  CommonData
 
struct  MyPrism
 
struct  OpCalculateGapGlobal
 Operator calculate gap, normal vector and rotation matrix. More...
 
struct  OpCalculateGapLocal
 Operator calculate gap in local coordinate system. More...
 
struct  OpHistory
 Operator update history variables. More...
 
struct  OpLhs
 Operator calculate element stiffens matrix. More...
 
struct  OpRhs
 Operator calculate right hand side vector. More...
 
struct  OpSetSignToShapeFunctions
 Set negative sign to shape functions on face 4. More...
 
struct  PhysicalEquation
 Constitutive (physical) equation for interface. More...
 

Public Member Functions

 CohesiveInterfaceElement (MoFEM::Interface &m_field)
 
virtual ~CohesiveInterfaceElement ()
 
MyPrismgetFeRhs ()
 
MyPrismgetFeLhs ()
 
MyPrismgetFeHistory ()
 
MoFEMErrorCode addOps (const std::string field_name, boost::ptr_vector< CohesiveInterfaceElement::PhysicalEquation > &interfaces)
 Driver function settting all operators needed for interface element. More...
 

Public Attributes

CommonData commonData
 
MyPrism feRhs
 
MyPrism feLhs
 
MyPrism feHistory
 

Detailed Description

Cohesive element implementation.

Bug:
Interface element not working with HO geometry.

Definition at line 14 of file CohesiveInterfaceElement.hpp.

Constructor & Destructor Documentation

◆ CohesiveInterfaceElement()

CohesiveElement::CohesiveInterfaceElement::CohesiveInterfaceElement ( MoFEM::Interface m_field)
inline

Definition at line 31 of file CohesiveInterfaceElement.hpp.

31  :
32  feRhs(m_field),feLhs(m_field),feHistory(m_field) {};

◆ ~CohesiveInterfaceElement()

virtual CohesiveElement::CohesiveInterfaceElement::~CohesiveInterfaceElement ( )
inlinevirtual

Definition at line 34 of file CohesiveInterfaceElement.hpp.

34  {
35 
36  }

Member Function Documentation

◆ addOps()

MoFEMErrorCode CohesiveElement::CohesiveInterfaceElement::addOps ( const std::string  field_name,
boost::ptr_vector< CohesiveInterfaceElement::PhysicalEquation > &  interfaces 
)
inline

Driver function settting all operators needed for interface element.

Definition at line 568 of file CohesiveInterfaceElement.hpp.

568  {
570 
571  //Rhs
572  feRhs.getOpPtrVector().push_back(new OpSetSignToShapeFunctions(field_name));
573  feRhs.getOpPtrVector().push_back(new OpCalculateGapGlobal(field_name,commonData));
574  feRhs.getOpPtrVector().push_back(new OpCalculateGapLocal(field_name,commonData));
575  //Lhs
576  feLhs.getOpPtrVector().push_back(new OpSetSignToShapeFunctions(field_name));
577  feLhs.getOpPtrVector().push_back(new OpCalculateGapGlobal(field_name,commonData));
578  feLhs.getOpPtrVector().push_back(new OpCalculateGapLocal(field_name,commonData));
579  //History
580  feHistory.getOpPtrVector().push_back(new OpSetSignToShapeFunctions(field_name));
581  feHistory.getOpPtrVector().push_back(new OpCalculateGapGlobal(field_name,commonData));
582  feHistory.getOpPtrVector().push_back(new OpCalculateGapLocal(field_name,commonData));
583 
584  //add equations/data for physical interfaces
585  boost::ptr_vector<CohesiveInterfaceElement::PhysicalEquation>::iterator pit;
586  for(pit = interfaces.begin();pit!=interfaces.end();pit++) {
587  feRhs.getOpPtrVector().push_back(new OpRhs(field_name,commonData,*pit));
588  feLhs.getOpPtrVector().push_back(new OpLhs(field_name,commonData,*pit));
589  feHistory.getOpPtrVector().push_back(new OpHistory(field_name,commonData,*pit));
590  }
591 
593  }

◆ getFeHistory()

MyPrism& CohesiveElement::CohesiveInterfaceElement::getFeHistory ( )
inline

Definition at line 40 of file CohesiveInterfaceElement.hpp.

40 { return feHistory; }

◆ getFeLhs()

MyPrism& CohesiveElement::CohesiveInterfaceElement::getFeLhs ( )
inline

Definition at line 39 of file CohesiveInterfaceElement.hpp.

39 { return feLhs; }

◆ getFeRhs()

MyPrism& CohesiveElement::CohesiveInterfaceElement::getFeRhs ( )
inline

Definition at line 38 of file CohesiveInterfaceElement.hpp.

38 { return feRhs; }

Member Data Documentation

◆ commonData

CommonData CohesiveElement::CohesiveInterfaceElement::commonData

Definition at line 21 of file CohesiveInterfaceElement.hpp.

◆ feHistory

MyPrism CohesiveElement::CohesiveInterfaceElement::feHistory

Definition at line 29 of file CohesiveInterfaceElement.hpp.

◆ feLhs

MyPrism CohesiveElement::CohesiveInterfaceElement::feLhs

Definition at line 28 of file CohesiveInterfaceElement.hpp.

◆ feRhs

MyPrism CohesiveElement::CohesiveInterfaceElement::feRhs

Definition at line 27 of file CohesiveInterfaceElement.hpp.


The documentation for this struct was generated from the following file:
MoFEMFunctionReturnHot
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:460
CohesiveElement::CohesiveInterfaceElement::feLhs
MyPrism feLhs
Definition: CohesiveInterfaceElement.hpp:28
CohesiveElement::CohesiveInterfaceElement::feRhs
MyPrism feRhs
Definition: CohesiveInterfaceElement.hpp:27
CohesiveElement::CohesiveInterfaceElement::commonData
CommonData commonData
Definition: CohesiveInterfaceElement.hpp:21
CohesiveElement::CohesiveInterfaceElement::feHistory
MyPrism feHistory
Definition: CohesiveInterfaceElement.hpp:29
OpLhs
Definition: approx_sphere.cpp:134
field_name
constexpr auto field_name
Definition: poisson_2d_homogeneous.cpp:13
OpRhs
Definition: approx_sphere.cpp:68
MoFEM::ForcesAndSourcesCore::getOpPtrVector
boost::ptr_deque< UserDataOperator > & getOpPtrVector()
Use to push back operator for row operator.
Definition: ForcesAndSourcesCore.hpp:83
MoFEMFunctionBeginHot
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:453