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: