12using EntData = EntitiesFieldData::EntData;
15using SideEle = FaceElementForcesAndSourcesCoreOnSide;
18 FormsIntegrators<BoundaryEleOp>::Assembly<A>
::OpBase;
38 using Base::refElementsMap;
41 boost::shared_ptr<moab::Core> core_mesh_ptr,
int max_order,
42 std::map<int, Range> &&body_map);
49 int getMaxLevel()
const {
return refElementsMap.at(MBTRI)->defMaxLevel; }
74 using MapFaceData = std::map<EntityHandle, std::vector<FaceData>>;
78 auto it = map_face_data.find(fe_ent);
79 if (it == map_face_data.end()) {
80 return (std::vector<FaceData> *)
nullptr;
86 std::vector<FaceData> *vec_ptr) {
88 if (it != vec_ptr->end()) {
89 if (it->gaussPtNb == gg) {
90 face_data_ptr = &(*it);
120 const std::string row_field_name,
121 boost::shared_ptr<ContactOps::CommonData> common_data_ptr,
122 boost::shared_ptr<ContactTree> contact_tree_ptr,
123 boost::shared_ptr<std::map<int, Range>> sdf_map_range_ptr =
nullptr);
125 MoFEMErrorCode
iNtegrate(EntitiesFieldData::EntData &row_data);
133template <AssemblyType A, IntegrationType I>
136template <AssemblyType A>
138 :
public FormsIntegrators<FaceUserDataOperator>::Assembly<A>
::OpBrokenBase {
140 using OP =
typename FormsIntegrators<FaceUserDataOperator>::Assembly<
144 boost::shared_ptr<std::vector<BrokenBaseSideData>> broken_base_side_data,
145 boost::shared_ptr<ContactOps::CommonData> common_data_ptr,
146 boost::shared_ptr<ContactTree> contact_tree_ptr);
148 MoFEMErrorCode iNtegrate(EntitiesFieldData::EntData &row_data);
158 const std::string row_field_name,
const std::string col_field_name,
159 boost::shared_ptr<ContactOps::CommonData> common_data_ptr,
160 boost::shared_ptr<ContactTree> contact_tree_ptr,
161 boost::shared_ptr<std::map<int, Range>> sdf_map_range_ptr =
nullptr);
163 MoFEMErrorCode
iNtegrate(EntitiesFieldData::EntData &row_data,
164 EntitiesFieldData::EntData &col_data);
174template <AssemblyType A>
176 :
public FormsIntegrators<FaceUserDataOperator>::Assembly<A>
::OpBrokenBase {
178 using OP =
typename FormsIntegrators<FaceUserDataOperator>::Assembly<
182 std::string row_field_name,
183 boost::shared_ptr<std::vector<BrokenBaseSideData>> broken_base_side_data,
184 boost::shared_ptr<ContactOps::CommonData> common_data_ptr,
185 boost::shared_ptr<ContactTree> contact_tree_ptr,
186 boost::shared_ptr<std::map<int, Range>> sdf_map_range_ptr =
nullptr);
188 MoFEMErrorCode iNtegrate(EntitiesFieldData::EntData &row_data,
189 EntitiesFieldData::EntData &col_data);
197template <AssemblyType A, IntegrationType I>
200template <AssemblyType A>
202 :
public FormsIntegrators<FaceUserDataOperator>::Assembly<A>
::OpBrokenBase {
204 using OP =
typename FormsIntegrators<FaceUserDataOperator>::Assembly<
208 boost::shared_ptr<std::vector<BrokenBaseSideData>> broken_base_side_data,
209 std::string col_field_name,
210 boost::shared_ptr<ContactOps::CommonData> common_data_ptr,
211 boost::shared_ptr<ContactTree> contact_tree_ptr);
213 MoFEMErrorCode iNtegrate(EntitiesFieldData::EntData &row_data,
214 EntitiesFieldData::EntData &col_data);
221struct OpMoveNode :
public FaceElementForcesAndSourcesCore::UserDataOperator {
223 using UOP = FaceElementForcesAndSourcesCore::UserDataOperator;
225 OpMoveNode(boost::shared_ptr<ContactTree> contact_tree_ptr,
226 boost::shared_ptr<ContactOps::CommonData> common_data_ptr,
227 boost::shared_ptr<MatrixDouble> u_h1_ptr);
228 MoFEMErrorCode
doWork(
int side, EntityType type,
229 EntitiesFieldData::EntData &data);
237struct OpTreeSearch :
public FaceElementForcesAndSourcesCore::UserDataOperator {
239 using UOP = FaceElementForcesAndSourcesCore::UserDataOperator;
241 OpTreeSearch(boost::shared_ptr<ContactTree> contact_tree_ptr,
242 boost::shared_ptr<ContactOps::CommonData> common_data_ptr,
243 boost::shared_ptr<MatrixDouble> u_h1_ptr,
Range r,
245 moab::Interface *post_proc_mesh_ptr,
246 std::vector<EntityHandle> *map_gauss_pts_ptr
249 MoFEMErrorCode
doWork(
int side, EntityType type,
250 EntitiesFieldData::EntData &data);
ElementsAndOps< SPACE_DIM >::BoundaryEle BoundaryEle
ElementsAndOps< SPACE_DIM >::SideEle SideEle
OpBaseImpl< PETSC, EdgeEleOp > OpBase
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
boost::shared_ptr< ContactTree > contactTreePtr
boost::shared_ptr< ContactTree > contactTreePtr
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
boost::shared_ptr< std::map< int, Range > > sdfMapRangePtr
boost::shared_ptr< ContactTree > contactTreePtr
boost::shared_ptr< std::map< int, Range > > sdfMapRangePtr
MoFEMErrorCode iNtegrate(EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
OpConstrainBoundaryL2Lhs_dU(const std::string row_field_name, const std::string col_field_name, boost::shared_ptr< ContactOps::CommonData > common_data_ptr, boost::shared_ptr< ContactTree > contact_tree_ptr, boost::shared_ptr< std::map< int, Range > > sdf_map_range_ptr=nullptr)
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
boost::shared_ptr< ContactTree > contactTreePtr
boost::shared_ptr< std::map< int, Range > > sdfMapRangePtr
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
boost::shared_ptr< ContactTree > contactTreePtr
MoFEMErrorCode iNtegrate(EntitiesFieldData::EntData &row_data)
OpConstrainBoundaryL2Rhs(const std::string row_field_name, boost::shared_ptr< ContactOps::CommonData > common_data_ptr, boost::shared_ptr< ContactTree > contact_tree_ptr, boost::shared_ptr< std::map< int, Range > > sdf_map_range_ptr=nullptr)
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
boost::shared_ptr< ContactTree > contactTreePtr
MoFEMErrorCode doWork(int side, EntityType type, EntitiesFieldData::EntData &data)
FaceElementForcesAndSourcesCore::UserDataOperator UOP
boost::shared_ptr< MatrixDouble > uH1Ptr
OpMoveNode(boost::shared_ptr< ContactTree > contact_tree_ptr, boost::shared_ptr< ContactOps::CommonData > common_data_ptr, boost::shared_ptr< MatrixDouble > u_h1_ptr)
moab::Interface * postProcMeshPtr
boost::shared_ptr< ContactTree > contactTreePtr
std::vector< EntityHandle > * mapGaussPtsPtr
boost::shared_ptr< MatrixDouble > uH1Ptr
OpTreeSearch(boost::shared_ptr< ContactTree > contact_tree_ptr, boost::shared_ptr< ContactOps::CommonData > common_data_ptr, boost::shared_ptr< MatrixDouble > u_h1_ptr, Range r, moab::Interface *post_proc_mesh_ptr, std::vector< EntityHandle > *map_gauss_pts_ptr)
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
MoFEMErrorCode doWork(int side, EntityType type, EntitiesFieldData::EntData &data)
FaceElementForcesAndSourcesCore::UserDataOperator UOP
Deprecated interface functions.
Data on single entity (This is passed as argument to DataOperator::doWork)