v0.14.0
Public Member Functions | Private Attributes | List of all members
FreeSurfaceOps::OpNormalConstrainRhs Struct Reference

#include <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) {}

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  }

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:
sdf.r
int r
Definition: sdf.py:8
cylindrical
auto cylindrical
Definition: free_surface.cpp:187
i
FTensor::Index< 'i', SPACE_DIM > i
Definition: hcurl_divergence_operator_2d.cpp:27
FreeSurfaceOps::OpNormalConstrainRhs::uPtr
boost::shared_ptr< MatrixDouble > uPtr
Definition: FreeSurfaceOps.hpp:89
field_name
constexpr auto field_name
Definition: poisson_2d_homogeneous.cpp:13
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:429
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:359
AssemblyBoundaryEleOp
FormsIntegrators< BoundaryEleOp >::Assembly< A >::OpBase AssemblyBoundaryEleOp
Definition: tensor_divergence_operator.cpp:61