v0.16.0
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
KelvinVoigtDamper Struct Reference

Implementation of Kelvin Voigt Damper. More...

#include "users_modules/basic_finite_elements/src/KelvinVoigtDamper.hpp"

Collaboration diagram for KelvinVoigtDamper:
[legend]

Classes

struct  AssembleMatrix
 
struct  AssembleVector
 
struct  BlockMaterialData
 Dumper material parameters. More...
 
struct  CommonData
 Common data for nonlinear_elastic_elem model. More...
 
struct  ConstitutiveEquation
 Constitutive model functions. More...
 
struct  DamperFE
 definition of volume element More...
 
struct  OpGetDataAtGaussPts
 
struct  OpJacobian
 
struct  OpLhsdxdot
 Assemble matrix. More...
 
struct  OpLhsdxdx
 Assemble matrix. More...
 
struct  OpRhsStress
 Assemble internal force vector. More...
 

Public Types

enum  TagEvaluate { DAMPERSTRESS }
 
typedef boost::ptr_map< int, KelvinVoigtDamper::ConstitutiveEquation< adouble > > ConstitutiveEquationMap
 

Public Member Functions

 KelvinVoigtDamper (MoFEM::Interface &m_field)
 
MoFEMErrorCode setBlockDataMap ()
 
MoFEMErrorCode setOperators (const int tag)
 

Public Attributes

MoFEM::InterfacemField
 
std::map< int, BlockMaterialDatablockMaterialDataMap
 
ConstitutiveEquationMap constitutiveEquationMap
 
CommonData commonData
 
DamperFE feRhs
 
DamperFE feLhs
 

Detailed Description

Implementation of Kelvin Voigt Damper.

Examples
mofem/users_modules/basic_finite_elements/nonlinear_elasticity/nonlinear_dynamics.cpp.

Definition at line 20 of file KelvinVoigtDamper.hpp.

Member Typedef Documentation

◆ ConstitutiveEquationMap

Definition at line 167 of file KelvinVoigtDamper.hpp.

Member Enumeration Documentation

◆ TagEvaluate

Enumerator
DAMPERSTRESS 

Definition at line 22 of file KelvinVoigtDamper.hpp.

Constructor & Destructor Documentation

◆ KelvinVoigtDamper()

KelvinVoigtDamper::KelvinVoigtDamper ( MoFEM::Interface m_field)
inline

Definition at line 253 of file KelvinVoigtDamper.hpp.

254 : mField(m_field), feRhs(m_field, commonData),
255 feLhs(m_field, commonData) {}
MoFEM::Interface & mField

Member Function Documentation

◆ setBlockDataMap()

MoFEMErrorCode KelvinVoigtDamper::setBlockDataMap ( )
inline

Definition at line 799 of file KelvinVoigtDamper.hpp.

799 {
801
803 if (it->getName().compare(0, 6, "DAMPER") == 0) {
804 std::vector<double> data;
805 CHKERR it->getAttributes(data);
806 if (data.size() < 2) {
807 SETERRQ(PETSC_COMM_SELF, 1, "Data inconsistency");
808 }
809 CHKERR mField.get_moab().get_entities_by_type(
810 it->meshset, MBTET, blockMaterialDataMap[it->getMeshsetId()].tEts,
811 true);
812 blockMaterialDataMap[it->getMeshsetId()].gBeta = data[0];
813 blockMaterialDataMap[it->getMeshsetId()].vBeta = data[1];
814 }
815 }
817 }
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
@ BLOCKSET
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
#define _IT_CUBITMESHSETS_BY_SET_TYPE_FOR_LOOP_(MESHSET_MANAGER, CUBITBCTYPE, IT)
Iterator that loops over a specific Cubit MeshSet having a particular BC meshset in a moFEM field.
std::map< int, BlockMaterialData > blockMaterialDataMap
virtual moab::Interface & get_moab()=0

◆ setOperators()

MoFEMErrorCode KelvinVoigtDamper::setOperators ( const int  tag)
inline

Definition at line 819 of file KelvinVoigtDamper.hpp.

819 {
821
822 for (auto &&fe_ptr : {&feRhs, &feLhs}) {
823 // CHKERR AddHOOps<3, 3, 3>::add(
824 // fe_ptr->getOpPtrVector(), {H1}, commonData.meshNodePositionName);
825 fe_ptr->getOpPtrVector().push_back(
826 new OpCalculateVectorFieldGradient<3, 3>(
829 fe_ptr->getOpPtrVector().push_back(new OpGetDataAtGaussPts(
830 commonData.spatialPositionName, commonData, false, true, false));
831 fe_ptr->getOpPtrVector().push_back(
832 new OpCalculateVectorFieldGradientDot<3, 3>(
835 fe_ptr->getOpPtrVector().push_back(new OpGetDataAtGaussPts(
836 commonData.spatialPositionName, commonData, false, true, true));
837 }
838
839 // attach tags for each recorder
840 std::vector<int> tags;
841 tags.push_back(tag);
842
843 ConstitutiveEquationMap::iterator mit = constitutiveEquationMap.begin();
844 for (; mit != constitutiveEquationMap.end(); mit++) {
845 ConstitutiveEquation<adouble> &ce =
846 constitutiveEquationMap.at(mit->first);
847 // Right hand side operators
848 feRhs.getOpPtrVector().push_back(new OpJacobian(
849 commonData.spatialPositionName, tags, ce, commonData, true, false));
850 feRhs.getOpPtrVector().push_back(new OpRhsStress(commonData));
851
852 // Left hand side operators
853 feLhs.getOpPtrVector().push_back(new OpJacobian(
854 commonData.spatialPositionName, tags, ce, commonData, false, true));
855 feLhs.getOpPtrVector().push_back(new OpLhsdxdx(commonData));
856 feLhs.getOpPtrVector().push_back(new OpLhsdxdot(commonData));
857 }
858
860 }
boost::shared_ptr< MatrixDouble > gradDataAtGaussTmpPtr
ConstitutiveEquationMap constitutiveEquationMap
boost::ptr_deque< UserDataOperator > & getOpPtrVector()
Use to push back operator for row operator.

Member Data Documentation

◆ blockMaterialDataMap

std::map<int, BlockMaterialData> KelvinVoigtDamper::blockMaterialDataMap

Definition at line 37 of file KelvinVoigtDamper.hpp.

◆ commonData

CommonData KelvinVoigtDamper::commonData

Definition at line 202 of file KelvinVoigtDamper.hpp.

◆ constitutiveEquationMap

ConstitutiveEquationMap KelvinVoigtDamper::constitutiveEquationMap

Definition at line 168 of file KelvinVoigtDamper.hpp.

◆ feLhs

DamperFE KelvinVoigtDamper::feLhs

Definition at line 251 of file KelvinVoigtDamper.hpp.

◆ feRhs

DamperFE KelvinVoigtDamper::feRhs

Definition at line 251 of file KelvinVoigtDamper.hpp.

◆ mField

MoFEM::Interface& KelvinVoigtDamper::mField

Definition at line 24 of file KelvinVoigtDamper.hpp.


The documentation for this struct was generated from the following file: