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

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

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

Public Member Functions

 OpNormalConstrainRhs (const std::string field_name, boost::shared_ptr< MatrixDouble > u_ptr)
 
MoFEMErrorCode iNtegrate (EntitiesFieldData::EntData &row_data)
 

Private Attributes

boost::shared_ptr< MatrixDouble > uPtr
 

Detailed Description

Examples
free_surface.cpp.

Definition at line 50 of file FreeSurfaceOps.hpp.

Constructor & Destructor Documentation

◆ OpNormalConstrainRhs()

FreeSurfaceOps::OpNormalConstrainRhs::OpNormalConstrainRhs ( const std::string  field_name,
boost::shared_ptr< MatrixDouble >  u_ptr 
)
inline

Definition at line 51 of file FreeSurfaceOps.hpp.

54 AssemblyBoundaryEleOp::OPROW),
55 uPtr(u_ptr) {}
FormsIntegrators< BoundaryEleOp >::Assembly< PETSC >::OpBase AssemblyBoundaryEleOp
Definition: contact.cpp:59
constexpr auto field_name
boost::shared_ptr< MatrixDouble > uPtr

Member Function Documentation

◆ iNtegrate()

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

Definition at line 57 of file FreeSurfaceOps.hpp.

57 {
59
60 auto t_w = getFTensor0IntegrationWeight();
61 auto t_normal = getFTensor1Normal();
62 auto t_u = getFTensor1FromMat<SPACE_DIM>(*uPtr);
63 auto t_row_base = row_data.getFTensor0N();
64 auto t_coords = getFTensor1CoordsAtGaussPts();
65
66 for (int gg = 0; gg != nbIntegrationPts; gg++) {
67
68 const double r = t_coords(0);
69 const double alpha = t_w * cylindrical(r);
70
71 int bb = 0;
72 for (; bb != nbRows; ++bb) {
73 locF[bb] += alpha * t_row_base * (t_normal(i) * t_u(i));
74 ++t_row_base;
75 }
76
77 for (; bb < nbRowBaseFunctions; ++bb)
78 ++t_row_base;
79
80 ++t_w;
81 ++t_u;
82 ++t_coords;
83 }
84
86 }
#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
FTensor::Index< 'i', SPACE_DIM > i
const double r
rate factor

Member Data Documentation

◆ uPtr

boost::shared_ptr<MatrixDouble> FreeSurfaceOps::OpNormalConstrainRhs::uPtr
private

Definition at line 89 of file FreeSurfaceOps.hpp.


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