#include <users_modules/tutorials/cor-2to5/src/PoissonOperators.hpp>
|
| OpResF_Domain (FSource f_source, boost::function< double(const double)> a, boost::shared_ptr< VectorDouble > &field_vals, boost::shared_ptr< MatrixDouble > &grad_vals) |
|
| OpF (FSource f_source) |
|
| OpBaseRhs (const std::string field_name) |
|
MoFEMErrorCode | doWork (int row_side, EntityType row_type, EntitiesFieldData::EntData &row_data) |
| This function is called by finite element. More...
|
|
virtual MoFEMErrorCode | iNtegrate (EntitiesFieldData::EntData &data)=0 |
| Class dedicated to integrate operator. More...
|
|
virtual MoFEMErrorCode | aSsemble (EntitiesFieldData::EntData &data)=0 |
| Class dedicated to assemble operator to global system vector. More...
|
|
|
MoFEMErrorCode | iNtegrate (EntitiesFieldData::EntData &data) |
| Integrate local entity vector. More...
|
|
MoFEMErrorCode | iNtegrate (EntitiesFieldData::EntData &data) |
| Integrate local entity vector. More...
|
|
MoFEMErrorCode | aSsemble (EntitiesFieldData::EntData &data) |
| assemble local entity vector to the global right hand side More...
|
|
Definition at line 659 of file PoissonOperators.hpp.
◆ OpResF_Domain()
PoissonExample::OpResF_Domain::OpResF_Domain |
( |
FSource |
f_source, |
|
|
boost::function< double(const double)> |
a, |
|
|
boost::shared_ptr< VectorDouble > & |
field_vals, |
|
|
boost::shared_ptr< MatrixDouble > & |
grad_vals |
|
) |
| |
|
inline |
Definition at line 661 of file PoissonOperators.hpp.
boost::shared_ptr< MatrixDouble > gradVals
boost::shared_ptr< VectorDouble > fieldVals
boost::function< double(const double)> A
◆ iNtegrate()
MoFEMErrorCode PoissonExample::OpResF_Domain::iNtegrate |
( |
EntitiesFieldData::EntData & |
data | ) |
|
|
inlineprotectedvirtual |
Integrate local entity vector.
- Parameters
-
data | entity data on element row |
- Returns
- error code
Reimplemented from PoissonExample::OpF.
- Examples
- PoissonOperators.hpp.
Definition at line 674 of file PoissonOperators.hpp.
674 {
676
678
680
681 double vol = getVolume();
682
683 auto t_w = getFTensor0IntegrationWeight();
684
685 auto t_u = getFTensor0FromVec(*
fieldVals);
686
687 auto t_grad = getFTensor1FromMat<3>(*
gradVals);
688
689 auto t_v = data.getFTensor0N();
690
691 auto t_v_grad = data.getFTensor1DiffN<3>();
692
693 auto t_coords = getFTensor1CoordsAtGaussPts();
694
696
697 const double alpha = vol * t_w;
698 const double source_term =
701 grad_term(
i) = (
alpha *
A(t_u)) * t_grad(
i);
702
705
706 for (
int rr = 0; rr !=
nbRows; rr++) {
707
708 t_a += t_v_grad(
i) * grad_term(
i) + t_v * source_term;
709 ++t_a;
710 ++t_v;
711 ++t_v_grad;
712 }
713 ++t_w;
714 ++t_u;
715 ++t_grad;
716 ++t_coords;
717 }
719 }
#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()
int nbIntegrationPts
number of integration points
FTensor::Index< 'i', 3 > i
boost::function<double(const double)> PoissonExample::OpResF_Domain::A |
|
protected |
◆ fieldVals
boost::shared_ptr<VectorDouble> PoissonExample::OpResF_Domain::fieldVals |
|
protected |
◆ gradVals
boost::shared_ptr<MatrixDouble> PoissonExample::OpResF_Domain::gradVals |
|
protected |
The documentation for this struct was generated from the following file: