#include <users_modules/tutorials/cor-2to5/src/PoissonOperators.hpp>
Definition at line 585 of file PoissonOperators.hpp.
◆ OpKt()
PoissonExample::OpKt::OpKt |
( |
boost::function< double(const double)> |
a, |
|
|
boost::function< double(const double)> |
diff_a, |
|
|
boost::shared_ptr< VectorDouble > & |
field_vals, |
|
|
boost::shared_ptr< MatrixDouble > & |
grad_vals |
|
) |
| |
|
inline |
◆ iNtegrate()
Integrate grad-grad operator.
- Parameters
-
row_data | row data (consist base functions on row entity) |
col_data | column data (consist base functions on column entity) |
- Returns
- error code
Reimplemented from PoissonExample::OpK.
- Examples
- PoissonOperators.hpp.
Definition at line 601 of file PoissonOperators.hpp.
609 double vol = getVolume();
611 auto t_w = getFTensor0IntegrationWeight();
615 auto t_grad = getFTensor1FromMat<3>(*
gradVals);
617 auto t_row_grad = row_data.getFTensor1DiffN<3>();
621 const double alpha = t_w * vol;
622 const double beta = alpha *
A(t_u);
624 t_gamma(
i) = (alpha *
diffA(t_u)) * t_grad(
i);
629 for (
int rr = 0; rr !=
nbRows; rr++) {
631 auto t_col = col_data.getFTensor0N(gg, 0);
633 auto t_col_grad = col_data.getFTensor1DiffN<3>(gg, 0);
635 for (
int cc = 0; cc !=
nbCols; cc++) {
637 a += (t_row_grad(
i) * beta) * t_col_grad(
i) +
638 t_row_grad(
i) * (t_gamma(
i) * t_col);
boost::function<double(const double)> PoissonExample::OpKt::A |
|
protected |
◆ diffA
boost::function<double(const double)> PoissonExample::OpKt::diffA |
|
protected |
◆ fieldVals
boost::shared_ptr<VectorDouble> PoissonExample::OpKt::fieldVals |
|
protected |
◆ gradVals
boost::shared_ptr<MatrixDouble> PoissonExample::OpKt::gradVals |
|
protected |
The documentation for this struct was generated from the following file: