v0.8.15
Classes | Public Member Functions | Public Attributes | List of all members
NeummanForcesSurfaceComplexForLazy Struct Reference

NonLinear surface pressure element (obsolete implementation) More...

#include <users_modules/basic_finite_elements/src/SurfacePressureComplexForLazy.hpp>

Collaboration diagram for NeummanForcesSurfaceComplexForLazy:
[legend]

Classes

struct  AuxMethodMaterial
 
struct  AuxMethodSpatial
 
struct  MyTriangleSpatialFE
 

Public Member Functions

MoFEMErrorCode setForceScale (double scale)
 
MyTriangleSpatialFEgetLoopSpatialFe ()
 
 NeummanForcesSurfaceComplexForLazy (MoFEM::Interface &m_field, Mat _Aij, Vec _F, double *scale_lhs, double *scale_rhs)
 
 NeummanForcesSurfaceComplexForLazy (MoFEM::Interface &m_field, Mat _Aij, Vec _F)
 

Public Attributes

MoFEM::InterfacemField
 
MyTriangleSpatialFE feSpatial
 
Tag thScale
 
doublesCale
 

Detailed Description

NonLinear surface pressure element (obsolete implementation)

Todo:
This is old implementation, need to be reimplemented, using auto-differentiation. It is well tested and works. well.

Definition at line 27 of file SurfacePressureComplexForLazy.hpp.

Constructor & Destructor Documentation

◆ NeummanForcesSurfaceComplexForLazy() [1/2]

NeummanForcesSurfaceComplexForLazy::NeummanForcesSurfaceComplexForLazy ( MoFEM::Interface m_field,
Mat  _Aij,
Vec  _F,
double scale_lhs,
double scale_rhs 
)

Definition at line 646 of file SurfacePressureComplexForLazy.cpp.

649  : mField(m_field), feSpatial(m_field, _Aij, _F, scale_lhs, scale_rhs) {}
#define _F(n)
Definition: quad.c:25

◆ NeummanForcesSurfaceComplexForLazy() [2/2]

NeummanForcesSurfaceComplexForLazy::NeummanForcesSurfaceComplexForLazy ( MoFEM::Interface m_field,
Mat  _Aij,
Vec  _F 
)

Definition at line 617 of file SurfacePressureComplexForLazy.cpp.

619  : mField(m_field),
620  feSpatial(m_field, _Aij, _F, NULL,
621  NULL) /*,feMaterial(m_field,_Aij,_F,NULL,NULL)*/ {
622 
623  double def_scale = 1.;
624  const EntityHandle root_meshset = mField.get_moab().get_root_set();
625  CHKERR mField.get_moab().tag_get_handle(
626  "_LoadFactor_Scale_", 1, MB_TYPE_DOUBLE, thScale,
627  MB_TAG_CREAT | MB_TAG_EXCL | MB_TAG_MESH, &def_scale);
628  if (rval == MB_ALREADY_ALLOCATED) {
629  rval = mField.get_moab().tag_get_by_ptr(thScale, &root_meshset, 1,
630  (const void **)&sCale);
631  MOAB_THROW(rval);
632  } else {
633  MOAB_THROW(rval);
634  rval = mField.get_moab().tag_set_data(thScale, &root_meshset, 1,
635  &def_scale);
636  MOAB_THROW(rval);
637  rval = mField.get_moab().tag_get_by_ptr(thScale, &root_meshset, 1,
638  (const void **)&sCale);
639  MOAB_THROW(rval);
640  }
641 
644 }
virtual moab::Interface & get_moab()=0
#define MOAB_THROW(a)
Check error code of MoAB function and throw MoFEM exception.
Definition: definitions.h:584
static MoFEMErrorCodeGeneric< moab::ErrorCode > rval
Definition: Common.hpp:78
#define CHKERR
Inline error check.
Definition: definitions.h:578
#define _F(n)
Definition: quad.c:25

Member Function Documentation

◆ getLoopSpatialFe()

MyTriangleSpatialFE& NeummanForcesSurfaceComplexForLazy::getLoopSpatialFe ( )

Definition at line 175 of file SurfacePressureComplexForLazy.hpp.

◆ setForceScale()

MoFEMErrorCode NeummanForcesSurfaceComplexForLazy::setForceScale ( double  scale)

Definition at line 169 of file SurfacePressureComplexForLazy.hpp.

169  {
171  *sCale = scale;
173  }
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:483
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return() ...
Definition: definitions.h:490

Member Data Documentation

◆ feSpatial

MyTriangleSpatialFE NeummanForcesSurfaceComplexForLazy::feSpatial

Definition at line 163 of file SurfacePressureComplexForLazy.hpp.

◆ mField

MoFEM::Interface& NeummanForcesSurfaceComplexForLazy::mField

Definition at line 162 of file SurfacePressureComplexForLazy.hpp.

◆ sCale

double* NeummanForcesSurfaceComplexForLazy::sCale

Definition at line 168 of file SurfacePressureComplexForLazy.hpp.

◆ thScale

Tag NeummanForcesSurfaceComplexForLazy::thScale

Definition at line 166 of file SurfacePressureComplexForLazy.hpp.


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