Assemble constrains vector.
More...
#include "tutorials/cor-2to5/src/PoissonOperators.hpp"
Assemble constrains vector.
\[
\mathbf{g} = \int_{\partial\Omega} \boldsymbol\psi \overline{u}
\textrm{d}\partial\Omega \]
- Examples
- mofem/tutorials/cor-2to5/analytical_poisson_field_split.cpp.
Definition at line 419 of file PoissonOperators.hpp.
◆ FVal
◆ Op_g()
PoissonExample::Op_g::Op_g |
( |
FVal |
f_value, |
|
|
const string |
field_name = "L" , |
|
|
const double |
beta = 1 |
|
) |
| |
|
inline |
Definition at line 425 of file PoissonOperators.hpp.
426 : OpBaseRhs<FaceElementForcesAndSourcesCore::UserDataOperator>(
constexpr auto field_name
FVal fValue
Function pointer evaluating values of "U" at the boundary.
◆ aSsemble()
assemble constrains vectors
- Examples
- mofem/tutorials/cor-2to5/src/PoissonOperators.hpp.
Definition at line 480 of file PoissonOperators.hpp.
480 {
482 const int *indices = &*data.
getIndices().data().begin();
483 const double *vals = &*
locVec.data().begin();
484 Vec f = getFEMethod()->ksp_f != PETSC_NULLPTR ? getFEMethod()->ksp_f
485 : getFEMethod()->snes_f;
488 }
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
const FTensor::Tensor2< T, Dim, Dim > Vec
MoFEMErrorCode VecSetValues(Vec V, const EntitiesFieldData::EntData &data, const double *ptr, InsertMode iora)
Assemble PETSc vector.
const VectorInt & getIndices() const
Get global indices of degrees of freedom on entity.
◆ iNtegrate()
Integrate local constrains vector.
- Examples
- mofem/tutorials/cor-2to5/src/PoissonOperators.hpp.
Definition at line 442 of file PoissonOperators.hpp.
442 {
444
446
448
449 const double area = getArea() *
bEta;
450
451 auto t_w = getFTensor0IntegrationWeight();
452
454
455 auto t_coords = getFTensor1CoordsAtGaussPts();
456
458
459
460 double alpha =
461 area * t_w *
fValue(t_coords(
NX), t_coords(
NY), t_coords(
NZ));
462
465
466 for (
int rr = 0; rr !=
nbRows; rr++) {
467 t_a += alpha * t_l;
468 ++t_a;
469 ++t_l;
470 }
471 ++t_w;
472 ++t_coords;
473 }
475 }
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > getFTensor0N(const FieldApproximationBase base)
Get base function as Tensor0.
int nbIntegrationPts
number of integration points
FTensor::Number< 2 > NZ
z-direction index
FTensor::Number< 0 > NX
x-direction index
FTensor::Number< 1 > NY
y-direction index
◆ bEta
const double PoissonExample::Op_g::bEta |
|
protected |
◆ fValue
FVal PoissonExample::Op_g::fValue |
|
protected |
◆ locVec
VectorDouble PoissonExample::Op_g::locVec |
|
protected |
◆ NX
◆ NY
◆ NZ
The documentation for this struct was generated from the following file: