v0.13.1
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
FreeSurfaceOps::OpNormalForceRhs Struct Reference

#include <users_modules/tutorials/vec-5/src/FreeSurfaceOps.hpp>

Inheritance diagram for FreeSurfaceOps::OpNormalForceRhs:
[legend]
Collaboration diagram for FreeSurfaceOps::OpNormalForceRhs:
[legend]

Public Member Functions

 OpNormalForceRhs (const std::string field_name, boost::shared_ptr< VectorDouble > lambda_ptr)
 
MoFEMErrorCode iNtegrate (EntitiesFieldData::EntData &row_data)
 

Private Attributes

boost::shared_ptr< VectorDouble > lambdaPtr
 

Detailed Description

Examples
free_surface.cpp.

Definition at line 92 of file FreeSurfaceOps.hpp.

Constructor & Destructor Documentation

◆ OpNormalForceRhs()

FreeSurfaceOps::OpNormalForceRhs::OpNormalForceRhs ( const std::string  field_name,
boost::shared_ptr< VectorDouble >  lambda_ptr 
)
inline

Definition at line 93 of file FreeSurfaceOps.hpp.

96 AssemblyDomainEleOp::OPROW),
97 lambdaPtr(lambda_ptr) {}
FormsIntegrators< BoundaryEleOp >::Assembly< PETSC >::OpBase AssemblyBoundaryEleOp
Definition: contact.cpp:59
constexpr auto field_name
boost::shared_ptr< VectorDouble > lambdaPtr

Member Function Documentation

◆ iNtegrate()

MoFEMErrorCode FreeSurfaceOps::OpNormalForceRhs::iNtegrate ( EntitiesFieldData::EntData &  row_data)
inline

Definition at line 99 of file FreeSurfaceOps.hpp.

99 {
101
102 auto t_w = getFTensor0IntegrationWeight();
103 auto t_normal = getFTensor1Normal();
104 auto t_lambda = getFTensor0FromVec(*lambdaPtr);
105 auto t_row_base = row_data.getFTensor0N();
106 auto t_coords = getFTensor1CoordsAtGaussPts();
107
108 for (int gg = 0; gg != nbIntegrationPts; gg++) {
109
110 auto t_nf = getFTensor1FromArray<U_FIELD_DIM, U_FIELD_DIM>(locF);
111
112 const double r = t_coords(0);
113 const double alpha = t_w * cylindrical(r);
114
115 int bb = 0;
116 for (; bb != nbRows / U_FIELD_DIM; ++bb) {
117
118 t_nf(i) += alpha * t_row_base * t_normal(i) * t_lambda;
119 ++t_row_base;
120 ++t_nf;
121 }
122
123 for (; bb < nbRowBaseFunctions; ++bb)
124 ++t_row_base;
125
126 ++t_w;
127 ++t_lambda;
128 ++t_coords;
129 }
130
132 }
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:416
auto cylindrical
constexpr int U_FIELD_DIM
FTensor::Index< 'i', SPACE_DIM > i
const double r
rate factor

Member Data Documentation

◆ lambdaPtr

boost::shared_ptr<VectorDouble> FreeSurfaceOps::OpNormalForceRhs::lambdaPtr
private

Definition at line 135 of file FreeSurfaceOps.hpp.


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