16 OpJacobian(
const int tag,
const bool eval_rhs,
const bool eval_lhs,
17 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
18 boost::shared_ptr<PhysicalEquations> physics_ptr)
34 boost::shared_ptr<DataAtIntegrationPts>
36 boost::shared_ptr<PhysicalEquations>
45 boost::shared_ptr<DataAtIntegrationPts>
49 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
54 std::string row_field, std::string col_field,
55 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
const char type,
56 const bool assemble_symmetry,
ScaleOff scale_off = []() {
return 1; })
81 double *vec_ptr = &*
nF.begin();
102 EntityType row_type, EntityType col_type,
107 const auto row_nb_dofs = row_data.
getIndices().size();
108 const auto col_nb_dofs = col_data.
getIndices().size();
109 transposeK.resize(col_nb_dofs, row_nb_dofs,
false);
114 CHKERR MatSetValues<AssemblyTypeSelector<A>>(this->getTSB(), row_data,
115 col_data,
K, ADD_VALUES);
117 CHKERR MatSetValues<AssemblyTypeSelector<A>>(
118 this->getTSB(), col_data, row_data,
transposeK, ADD_VALUES);
136 EntityType col_type,
EntData &row_data,
146 CHKERR assemble(row_side, col_side, row_type, col_type, row_data, col_data);
169 boost::shared_ptr<DataAtIntegrationPts>
176 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
double alpha_omega = 0)
182 boost::shared_ptr<DataAtIntegrationPts>
189 boost::shared_ptr<DataAtIntegrationPts> data_ptr)
191 std::fill(&doEntities[MBVERTEX], &doEntities[MBMAXTYPE],
false);
192 for (
auto t = moab::CN::TypeDimensionMap[
SPACE_DIM].first;
193 t <= moab::CN::TypeDimensionMap[
SPACE_DIM].second; ++
t)
194 doEntities[
t] =
true;
200 boost::shared_ptr<DataAtIntegrationPts>
206 std::string block_name,
Range block_entities,
207 std::array<double, 6> &reaction_vec)
214 boost::shared_ptr<DataAtIntegrationPts>
223 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
224 const double alpha,
const double rho)
237 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
249 boost::shared_ptr<DataAtIntegrationPts> data_ptr)
258 boost::shared_ptr<DataAtIntegrationPts> data_ptr)
267 boost::shared_ptr<DataAtIntegrationPts> data_ptr)
274 template <AssemblyType A>
276 :
public FormsIntegrators<FaceUserDataOperator>::Assembly<A>
::OpBrokenBase {
278 using OP =
typename FormsIntegrators<FaceUserDataOperator>::Assembly<
282 boost::shared_ptr<std::vector<BrokenBaseSideData>> broken_base_side_data,
283 boost::shared_ptr<BcDispVec> &bc_disp_ptr,
284 std::vector<boost::shared_ptr<ScalingMethod>> smv,
285 boost::shared_ptr<Range> ents_ptr =
nullptr)
286 :
OP(broken_base_side_data, ents_ptr), bcDispPtr(bc_disp_ptr),
287 scalingMethodsVec(smv) {}
297 using OP::OpDispBcImpl;
305 template <AssemblyType A>
307 :
public FormsIntegrators<FaceUserDataOperator>::Assembly<A>
::OpBrokenBase {
309 using OP =
typename FormsIntegrators<FaceUserDataOperator>::Assembly<
313 boost::shared_ptr<std::vector<BrokenBaseSideData>> broken_base_side_data,
314 boost::shared_ptr<BcRotVec> &bc_rot_ptr,
315 std::vector<boost::shared_ptr<ScalingMethod>> smv,
316 boost::shared_ptr<Range> ents_ptr =
nullptr)
317 :
OP(broken_base_side_data, ents_ptr), bcRotPtr(bc_rot_ptr),
318 scalingMethodsVec(smv) {}
328 using OP::OpRotationBcImpl;
335 :
public FormsIntegrators<FaceUserDataOperator>::Assembly<PETSC>
::OpBase {
337 boost::shared_ptr<TractionBcVec> bc_data,
338 boost::shared_ptr<double> piola_scale_ptr,
339 std::vector<boost::shared_ptr<ScalingMethod>> smv)
354 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
355 const bool assemble_off =
false)
367 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
368 const double alpha,
const double rho)
378 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
379 const bool assemble_off =
false)
390 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
391 const bool assemble_off =
false)
401 using OpAssembleVolume::OpAssembleVolume;
403 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
404 const bool assemble_off)
414 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
425 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
426 const bool assemble_off)
436 std::string row_field, std::string col_field,
437 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
const bool assemble_off)
448 std::string row_field, std::string col_field,
449 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
double alpha_omega)
462 boost::shared_ptr<DataAtIntegrationPts> data_ptr)
475 std::string row_field, std::string col_field,
476 boost::shared_ptr<DataAtIntegrationPts> data_ptr)
489 std::string row_field, std::string col_field,
490 boost::shared_ptr<DataAtIntegrationPts> data_ptr)
503 std::string row_field, std::string col_field,
504 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
const bool assemble_off)
516 std::string row_field, std::string col_field,
517 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
const bool assemble_off)
537 std::vector<EntityHandle> &map_gauss_pts,
538 boost::shared_ptr<DataAtIntegrationPts> data_ptr,
551 boost::shared_ptr<DataAtIntegrationPts> data_ptr)
558 boost::shared_ptr<DataAtIntegrationPts> data_ptr)
568 boost::shared_ptr<DataAtIntegrationPts> data_ptr)
583 boost::shared_ptr<double> release_energy_ptr)
588 "releaseEnergyPtr is nullptr");
594 boost::shared_ptr<DataAtIntegrationPts>
599 template <
int FE_DIM,
int PROBLEM_DIM,
int SPACE_DIM>
struct AddHOOps;
604 add(boost::ptr_deque<ForcesAndSourcesCore::UserDataOperator> &pipeline,
605 std::vector<FieldSpace> space, std::string geom_field_name,
606 boost::shared_ptr<Range> crack_front_edges_ptr);
612 add(boost::ptr_deque<ForcesAndSourcesCore::UserDataOperator> &pipeline,
613 std::vector<FieldSpace> space, std::string geom_field_name,
614 boost::shared_ptr<Range> crack_front_edges_ptr);