508 vecF.resize(nb_dofs,
false);
510 const int nb_integration_pts = getGaussPts().size2();
513 auto dir = getDirection();
516 auto t_w = getFTensor0IntegrationWeight();
517 const double pi = 3.141592653589793;
518 const double ct = getFEMethod()->ts_t;
519 for (
int gg = 0; gg != nb_integration_pts; ++gg) {
520 const double a = t_w;
521 double x = getCoordsAtGaussPts()(gg, 0);
522 double y = getCoordsAtGaussPts()(gg, 1);
524 double mm = -10 * 8 *
pi * cos(2 *
pi * x) * sin(2 *
pi * y) *
526 double nn = -10 * 8 *
pi * sin(2 *
pi * x) * cos(2 *
pi * y) *
530 double h = t_bd_val(
i) * t_normal(
i);
531 for (
int rr = 0; rr != nb_dofs; ++rr) {
532 vecF[rr] += t_row_base *
h *
a;
537 CHKERR VecSetOption(getFEMethod()->ts_F, VEC_IGNORE_NEGATIVE_INDICES,
#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.
constexpr auto VecSetValues
FTensor::Index< 'i', 3 > i
double h
convective heat coefficient
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > getFTensor0N(const FieldApproximationBase base)
Get base function as Tensor0.
const VectorInt & getIndices() const
Get global indices of dofs on entity.