131 boost::shared_ptr<VectorDouble> slow_value_ptr1(
commonData1,
133 boost::shared_ptr<VectorDouble> slow_value_ptr2(
commonData2,
135 boost::shared_ptr<VectorDouble> slow_value_ptr3(
commonData3,
141 const int nb_integration_pts = getGaussPts().size2();
142 if (
type == MBVERTEX) {
143 vec1.resize(nb_integration_pts,
false);
144 vec2.resize(nb_integration_pts,
false);
145 vec3.resize(nb_integration_pts,
false);
153 auto find_block_data = [&]() {
157 if (
m.second.block_ents.find(fe_ent) !=
m.second.block_ents.end()) {
158 block_raw_ptr = &
m.second;
162 return block_raw_ptr;
165 auto block_data_ptr = find_block_data();
169 auto &block_data = *block_data_ptr;
171 const int nb_integration_pts = getGaussPts().size2();
183 for (
int gg = 0; gg != nb_integration_pts; ++gg) {
184 t_slow_values1 = block_data.rate[0] * t_mass_values1 *
185 (1.0 - block_data.coef(0, 0) * t_mass_values1 -
186 block_data.coef(0, 1) * t_mass_values2 -
187 block_data.coef(0, 2) * t_mass_values3);
188 t_slow_values2 = block_data.rate[1] * t_mass_values2 *
189 (1.0 - block_data.coef(1, 0) * t_mass_values1 -
190 block_data.coef(1, 1) * t_mass_values2 -
191 block_data.coef(1, 2) * t_mass_values3);
193 t_slow_values3 = block_data.rate[2] * t_mass_values3 *
194 (1.0 - block_data.coef(2, 0) * t_mass_values1 -
195 block_data.coef(2, 1) * t_mass_values2 -
196 block_data.coef(2, 2) * t_mass_values3);
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
@ MOFEM_DATA_INCONSISTENCY
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
UBlasVector< double > VectorDouble
static auto getFTensor0FromVec(ublas::vector< T, A > &data)
Get tensor rank 0 (scalar) form data vector.
FTensor::Index< 'm', 3 > m
const VectorInt & getIndices() const
Get global indices of dofs on entity.