v0.12.1
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
nonlinear_dynamics.cpp.

Definition at line 34 of file KelvinVoigtDamper.hpp.

Member Typedef Documentation

◆ ConstitutiveEquationMap

Definition at line 196 of file KelvinVoigtDamper.hpp.

Member Enumeration Documentation

◆ TagEvaluate

Enumerator
DAMPERSTRESS 

Definition at line 36 of file KelvinVoigtDamper.hpp.

Constructor & Destructor Documentation

◆ KelvinVoigtDamper()

KelvinVoigtDamper::KelvinVoigtDamper ( MoFEM::Interface m_field)

Definition at line 272 of file KelvinVoigtDamper.hpp.

273  : mField(m_field), feRhs(m_field, commonData),
274  feLhs(m_field, commonData) {}
MoFEM::Interface & mField

Member Function Documentation

◆ setBlockDataMap()

MoFEMErrorCode KelvinVoigtDamper::setBlockDataMap ( )

Definition at line 810 of file KelvinVoigtDamper.hpp.

810  {
812 
814  if (it->getName().compare(0, 6, "DAMPER") == 0) {
815  std::vector<double> data;
816  CHKERR it->getAttributes(data);
817  if (data.size() < 2) {
818  SETERRQ(PETSC_COMM_SELF, 1, "Data inconsistency");
819  }
820  CHKERR mField.get_moab().get_entities_by_type(
821  it->meshset, MBTET, blockMaterialDataMap[it->getMeshsetId()].tEts,
822  true);
823  blockMaterialDataMap[it->getMeshsetId()].gBeta = data[0];
824  blockMaterialDataMap[it->getMeshsetId()].vBeta = data[1];
825  }
826  }
828  }
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:339
@ BLOCKSET
Definition: definitions.h:141
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:409
#define CHKERR
Inline error check.
Definition: definitions.h:528
#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)

Definition at line 830 of file KelvinVoigtDamper.hpp.

830  {
832 
833  DamperFE *fe_ptr[] = {&feRhs, &feLhs};
834  for (int ss = 0; ss < 2; ss++) {
835  fe_ptr[ss]->getOpPtrVector().push_back(new OpGetDataAtGaussPts(
836  commonData.spatialPositionName, commonData, false, true));
837  fe_ptr[ss]->getOpPtrVector().push_back(new OpGetDataAtGaussPts(
839  }
840 
841  // attach tags for each recorder
842  std::vector<int> tags;
843  tags.push_back(tag);
844 
845  ConstitutiveEquationMap::iterator mit = constitutiveEquationMap.begin();
846  for (; mit != constitutiveEquationMap.end(); mit++) {
847  ConstitutiveEquation<adouble> &ce =
848  constitutiveEquationMap.at(mit->first);
849  // Right hand side operators
850  feRhs.getOpPtrVector().push_back(new OpJacobian(
851  commonData.spatialPositionName, tags, ce, commonData, true, false));
852  feRhs.getOpPtrVector().push_back(new OpRhsStress(commonData));
853 
854  // Left hand side operators
855  feLhs.getOpPtrVector().push_back(new OpJacobian(
856  commonData.spatialPositionName, tags, ce, commonData, false, true));
857  feLhs.getOpPtrVector().push_back(new OpLhsdxdx(commonData));
858  feLhs.getOpPtrVector().push_back(new OpLhsdxdot(commonData));
859  }
860 
862  }
ConstitutiveEquationMap constitutiveEquationMap
boost::ptr_vector< UserDataOperator > & getOpPtrVector()
Use to push back operator for row operator.

Member Data Documentation

◆ blockMaterialDataMap

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

Definition at line 51 of file KelvinVoigtDamper.hpp.

◆ commonData

CommonData KelvinVoigtDamper::commonData

Definition at line 221 of file KelvinVoigtDamper.hpp.

◆ constitutiveEquationMap

ConstitutiveEquationMap KelvinVoigtDamper::constitutiveEquationMap

Definition at line 197 of file KelvinVoigtDamper.hpp.

◆ feLhs

DamperFE KelvinVoigtDamper::feLhs

Definition at line 270 of file KelvinVoigtDamper.hpp.

◆ feRhs

DamperFE KelvinVoigtDamper::feRhs

Definition at line 270 of file KelvinVoigtDamper.hpp.

◆ mField

MoFEM::Interface& KelvinVoigtDamper::mField

Definition at line 38 of file KelvinVoigtDamper.hpp.


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