v0.14.0
EshelbianContact.hpp
Go to the documentation of this file.
1 /**
2  * @file EshelbianContact.hpp
3  * @brief
4  * @date 2023-05-13
5  *
6  * @copyright Copyright (c) 2023
7  *
8  */
9 
10 namespace ContactOps {
11 
15 using SideEle = FaceElementForcesAndSourcesCoreOnSide;
16 
18  FormsIntegrators<BoundaryEleOp>::Assembly<A>::OpBase;
19 
20 double cn_contact = 1;
23 double scale = 1;
24 
25 double airplane_ray_distance = 1; // thi is point from which plane send ray.
26  // This is multiple of elem radius.
27 
28 } // namespace ContactOps
29 
30 #include <ContactOps.hpp>
31 
32 namespace EshelbianPlasticity {
33 
35  : public PostProcBrokenMeshInMoabBase<FaceElementForcesAndSourcesCore> {
36 
37  using Base = PostProcBrokenMeshInMoabBase<FaceElementForcesAndSourcesCore>;
38  using Base::refElementsMap;
39 
41  boost::shared_ptr<moab::Core> core_mesh_ptr, int max_order,
42  std::map<int, Range> &&body_map);
45  inline boost::shared_ptr<OrientedBoxTreeTool> &getTreeSurfPtr() {
46  return treeSurfPtr;
47  }
48  inline auto getRootSetSurf() { return rootSetSurf; }
49  int getMaxLevel() const { return refElementsMap.at(MBTRI)->defMaxLevel; }
50 
51  friend struct OpMoveNode;
52  friend struct OpTreeSearch;
53 
54  struct FaceData {
55  int gaussPtNb; //< integration points number
56  std::array<double, 3> slavePoint;
57  std::array<double, 3> masterPoint;
58  std::array<double, 3> rayPoint;
59  std::array<double, 3> unitRay;
60  double eleRadius;
61 
62  // std::vector<int> dofsSlaveIds;
63  // std::vector<double> dofsSlaveCoeff;
64  // std::vector<double> baseSlaveFuncs;
65 
66  std::array<double, 9> masterPointNodes;
67  std::array<double, 9> masterTractionNodes;
68  std::array<double, 9> slavePointNodes;
69  std::array<double, 9> slaveTractionNodes;
70 
71  FaceData() = default;
72  };
73 
74  using MapFaceData = std::map<EntityHandle, std::vector<FaceData>>;
75 
76  inline auto findFaceDataVecPtr(EntityHandle fe_ent) {
77  auto &map_face_data = shadowDataMap;
78  auto it = map_face_data.find(fe_ent);
79  if (it == map_face_data.end()) {
80  return (std::vector<FaceData> *)nullptr;
81  }
82  return &(it->second);
83  }
84 
85  inline auto getFaceDataPtr(std::vector<FaceData>::iterator &it, int gg,
86  std::vector<FaceData> *vec_ptr) {
87  FaceData *face_data_ptr = nullptr;
88  if (it != vec_ptr->end()) {
89  if (it->gaussPtNb == gg) {
90  face_data_ptr = &(*it);
91  ++it;
92  }
93  }
94  return face_data_ptr;
95  }
96 
97 protected:
99  boost::shared_ptr<OrientedBoxTreeTool> treeSurfPtr;
101 
102  Tag thEleId;
103  // Tag thCoeff;
104  // Tag thIds;
105  // Tag thBases;
106  Tag thBodyId;
107  Tag thSmallX;
108  Tag thLargeX;
110 
112 
113  std::map<int, Range> bodyMap;
114 
115  const int maxOrder;
116 };
117 
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);
124 
126 
127 private:
128  boost::shared_ptr<ContactOps::CommonData> commonDataPtr;
129  boost::shared_ptr<ContactTree> contactTreePtr;
130  boost::shared_ptr<std::map<int, Range>> sdfMapRangePtr;
131 };
132 
134 
136  const std::string row_field_name,
137  boost::shared_ptr<ContactOps::CommonData> common_data_ptr,
138  boost::shared_ptr<ContactTree> contact_tree_ptr);
139 
141 
142 private:
143  boost::shared_ptr<ContactOps::CommonData> commonDataPtr;
144  boost::shared_ptr<ContactTree> contactTreePtr;
145 };
146 
148 
150  const std::string row_field_name, const std::string col_field_name,
151  boost::shared_ptr<ContactOps::CommonData> common_data_ptr,
152  boost::shared_ptr<ContactTree> contact_tree_ptr,
153  boost::shared_ptr<std::map<int, Range>> sdf_map_range_ptr = nullptr);
154 
156  EntitiesFieldData::EntData &col_data);
157 
158 private:
159  boost::shared_ptr<ContactOps::CommonData> commonDataPtr;
160  boost::shared_ptr<ContactTree> contactTreePtr;
161  boost::shared_ptr<std::map<int, Range>> sdfMapRangePtr;
162 };
163 
165 
167  const std::string row_field_name, const std::string col_field_name,
168  boost::shared_ptr<ContactOps::CommonData> common_data_ptr,
169  boost::shared_ptr<ContactTree> contact_tree_ptr,
170  boost::shared_ptr<std::map<int, Range>> sdf_map_range_ptr = nullptr);
171 
173  EntitiesFieldData::EntData &col_data);
174 
175 private:
176  boost::shared_ptr<ContactOps::CommonData> commonDataPtr;
177  boost::shared_ptr<ContactTree> contactTreePtr;
178  boost::shared_ptr<std::map<int, Range>> sdfMapRangePtr;
179 };
180 
183 
185  const std::string row_field_name, const std::string col_field_name,
186  boost::shared_ptr<ContactOps::CommonData> common_data_ptr,
187  boost::shared_ptr<ContactTree> contact_tree_ptr);
188 
190  EntitiesFieldData::EntData &col_data);
191 
192 private:
193  boost::shared_ptr<ContactOps::CommonData> commonDataPtr;
194  boost::shared_ptr<ContactTree> contactTreePtr;
195 };
196 
198 
200 
201  OpMoveNode(boost::shared_ptr<ContactTree> contact_tree_ptr,
202  boost::shared_ptr<ContactOps::CommonData> common_data_ptr,
203  boost::shared_ptr<MatrixDouble> u_h1_ptr);
204  MoFEMErrorCode doWork(int side, EntityType type,
206 
207 protected:
208  boost::shared_ptr<ContactTree> contactTreePtr;
209  boost::shared_ptr<MatrixDouble> uH1Ptr;
210  boost::shared_ptr<ContactOps::CommonData> commonDataPtr;
211 };
212 
214 
216 
217  OpTreeSearch(boost::shared_ptr<ContactTree> contact_tree_ptr,
218  boost::shared_ptr<ContactOps::CommonData> common_data_ptr,
219  boost::shared_ptr<MatrixDouble> u_h1_ptr, Range r,
220 
221  moab::Interface *post_proc_mesh_ptr,
222  std::vector<EntityHandle> *map_gauss_pts_ptr
223 
224  );
225  MoFEMErrorCode doWork(int side, EntityType type,
227 
228 protected:
229  boost::shared_ptr<ContactTree> contactTreePtr;
230  boost::shared_ptr<ContactOps::CommonData> commonDataPtr;
231  boost::shared_ptr<MatrixDouble> uH1Ptr;
232 
234  std::vector<EntityHandle> *mapGaussPtsPtr = nullptr;
235 
237 };
238 
239 } // namespace EshelbianPlasticity
ContactOps::airplane_ray_distance
double airplane_ray_distance
Definition: EshelbianContact.hpp:25
EshelbianPlasticity::ContactTree::FaceData::FaceData
FaceData()=default
EshelbianPlasticity::OpConstrainBoundaryL2Lhs_dP::commonDataPtr
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
Definition: EshelbianContact.hpp:176
EshelbianPlasticity::OpMoveNode
Definition: EshelbianContact.hpp:197
EshelbianPlasticity::ContactTree::buildTree
MoFEMErrorCode buildTree(Range &ents)
Definition: EshelbianContact.cpp:1022
EshelbianPlasticity::OpTreeSearch::UOP
FaceElementForcesAndSourcesCore::UserDataOperator UOP
Definition: EshelbianContact.hpp:215
EntityHandle
EshelbianPlasticity::OpConstrainBoundaryHDivLhs_dU::OpConstrainBoundaryHDivLhs_dU
OpConstrainBoundaryHDivLhs_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)
Definition: EshelbianContact.cpp:824
ContactOps
Definition: EshelbianContact.hpp:10
ContactOps::EntData
EntitiesFieldData::EntData EntData
Definition: EshelbianContact.hpp:12
EshelbianPlasticity::OpMoveNode::UOP
FaceElementForcesAndSourcesCore::UserDataOperator UOP
Definition: EshelbianContact.hpp:199
ContactOps::SideEle
FaceElementForcesAndSourcesCoreOnSide SideEle
Definition: EshelbianContact.hpp:15
EshelbianPlasticity::OpConstrainBoundaryL2Rhs::sdfMapRangePtr
boost::shared_ptr< std::map< int, Range > > sdfMapRangePtr
Definition: EshelbianContact.hpp:130
EshelbianPlasticity::OpConstrainBoundaryHDivRhs::commonDataPtr
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
Definition: EshelbianContact.hpp:143
EshelbianPlasticity::ContactTree::getTreeSurfPtr
boost::shared_ptr< OrientedBoxTreeTool > & getTreeSurfPtr()
Definition: EshelbianContact.hpp:45
MoFEM::Exceptions::MoFEMErrorCode
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:56
EshelbianPlasticity::ContactTree::FaceData::masterPoint
std::array< double, 3 > masterPoint
Definition: EshelbianContact.hpp:57
EshelbianPlasticity::OpTreeSearch::contactTreePtr
boost::shared_ptr< ContactTree > contactTreePtr
Definition: EshelbianContact.hpp:229
EshelbianPlasticity::OpTreeSearch::OpTreeSearch
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)
Definition: EshelbianContact.cpp:1109
EshelbianPlasticity
Definition: CGGTonsorialBubbleBase.hpp:11
EshelbianPlasticity::OpConstrainBoundaryHDivLhs_dU::commonDataPtr
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
Definition: EshelbianContact.hpp:193
A
constexpr AssemblyType A
Definition: operators_tests.cpp:30
EshelbianPlasticity::ContactTree::postProcess
MoFEMErrorCode postProcess()
function is run at the end of loop
Definition: EshelbianContact.cpp:979
EshelbianPlasticity::OpTreeSearch::contactRange
Range contactRange
Definition: EshelbianContact.hpp:236
OpBase
OpBaseImpl< PETSC, EdgeEleOp > OpBase
Definition: radiation.cpp:29
EshelbianPlasticity::OpConstrainBoundaryL2Lhs_dP::contactTreePtr
boost::shared_ptr< ContactTree > contactTreePtr
Definition: EshelbianContact.hpp:177
EshelbianPlasticity::ContactTree::getFaceDataPtr
auto getFaceDataPtr(std::vector< FaceData >::iterator &it, int gg, std::vector< FaceData > *vec_ptr)
Definition: EshelbianContact.hpp:85
EshelbianPlasticity::OpMoveNode::contactTreePtr
boost::shared_ptr< ContactTree > contactTreePtr
Definition: EshelbianContact.hpp:208
EshelbianPlasticity::ContactTree::FaceData
Definition: EshelbianContact.hpp:54
sdf.r
int r
Definition: sdf.py:8
EshelbianPlasticity::ContactTree::ContactTree
ContactTree(MoFEM::Interface &m_field, boost::shared_ptr< moab::Core > core_mesh_ptr, int max_order, std::map< int, Range > &&body_map)
Definition: EshelbianContact.cpp:909
EshelbianPlasticity::ContactTree::thSmallX
Tag thSmallX
Definition: EshelbianContact.hpp:107
MoFEM::DeprecatedCoreInterface
Deprecated interface functions.
Definition: DeprecatedCoreInterface.hpp:16
EshelbianPlasticity::OpMoveNode::OpMoveNode
OpMoveNode(boost::shared_ptr< ContactTree > contact_tree_ptr, boost::shared_ptr< ContactOps::CommonData > common_data_ptr, boost::shared_ptr< MatrixDouble > u_h1_ptr)
Definition: EshelbianContact.cpp:1035
EshelbianPlasticity::OpConstrainBoundaryL2Lhs_dU::sdfMapRangePtr
boost::shared_ptr< std::map< int, Range > > sdfMapRangePtr
Definition: EshelbianContact.hpp:161
MoFEM::Interface
DeprecatedCoreInterface Interface
Definition: Interface.hpp:2010
MoFEM::PostProcBrokenMeshInMoabBase< FaceElementForcesAndSourcesCore >::refElementsMap
std::map< EntityType, PostProcGenerateRefMeshPtr > refElementsMap
Definition: PostProcBrokenMeshInMoabBase.hpp:171
EshelbianPlasticity::ContactTree::MapFaceData
std::map< EntityHandle, std::vector< FaceData > > MapFaceData
Definition: EshelbianContact.hpp:74
EshelbianPlasticity::ContactTree::FaceData::unitRay
std::array< double, 3 > unitRay
Definition: EshelbianContact.hpp:59
EshelbianPlasticity::ContactTree::thEleId
Tag thEleId
Definition: EshelbianContact.hpp:102
EshelbianPlasticity::OpConstrainBoundaryHDivRhs::contactTreePtr
boost::shared_ptr< ContactTree > contactTreePtr
Definition: EshelbianContact.hpp:144
ContactOps::scale
double scale
Definition: EshelbianContact.hpp:23
EshelbianPlasticity::ContactTree::rootSetSurf
EntityHandle rootSetSurf
Definition: EshelbianContact.hpp:100
EshelbianPlasticity::ContactTree::shadowDataMap
MapFaceData shadowDataMap
Definition: EshelbianContact.hpp:111
EshelbianPlasticity::OpTreeSearch::postProcMeshPtr
moab::Interface * postProcMeshPtr
Definition: EshelbianContact.hpp:233
BoundaryEleOp
EshelbianPlasticity::ContactTree::FaceData::slavePointNodes
std::array< double, 9 > slavePointNodes
Definition: EshelbianContact.hpp:68
EshelbianPlasticity::ContactTree::thBodyId
Tag thBodyId
Definition: EshelbianContact.hpp:106
convert.type
type
Definition: convert.py:64
EshelbianPlasticity::ContactTree::getMaxLevel
int getMaxLevel() const
Definition: EshelbianContact.hpp:49
EshelbianPlasticity::OpConstrainBoundaryHDivLhs_dU
Definition: EshelbianContact.hpp:181
EshelbianPlasticity::OpConstrainBoundaryL2Lhs_dU::commonDataPtr
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
Definition: EshelbianContact.hpp:159
EshelbianPlasticity::OpConstrainBoundaryHDivRhs::iNtegrate
MoFEMErrorCode iNtegrate(EntitiesFieldData::EntData &row_data)
Definition: EshelbianContact.cpp:465
EshelbianPlasticity::ContactTree::bodyMap
std::map< int, Range > bodyMap
Definition: EshelbianContact.hpp:113
EshelbianPlasticity::OpConstrainBoundaryL2Lhs_dU::iNtegrate
MoFEMErrorCode iNtegrate(EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
Definition: EshelbianContact.cpp:541
EshelbianPlasticity::OpConstrainBoundaryHDivRhs
Definition: EshelbianContact.hpp:133
EshelbianPlasticity::ContactTree::FaceData::gaussPtNb
int gaussPtNb
Definition: EshelbianContact.hpp:55
ContactOps::AssemblyBoundaryEleOp
FormsIntegrators< BoundaryEleOp >::Assembly< A >::OpBase AssemblyBoundaryEleOp
Definition: EshelbianContact.hpp:18
EshelbianPlasticity::OpConstrainBoundaryL2Lhs_dU
Definition: EshelbianContact.hpp:147
EshelbianPlasticity::ContactTree::FaceData::masterPointNodes
std::array< double, 9 > masterPointNodes
Definition: EshelbianContact.hpp:66
EshelbianPlasticity::OpConstrainBoundaryHDivRhs::OpConstrainBoundaryHDivRhs
OpConstrainBoundaryHDivRhs(const std::string row_field_name, boost::shared_ptr< ContactOps::CommonData > common_data_ptr, boost::shared_ptr< ContactTree > contact_tree_ptr)
Definition: EshelbianContact.cpp:456
EshelbianPlasticity::OpConstrainBoundaryHDivLhs_dU::iNtegrate
MoFEMErrorCode iNtegrate(EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
Definition: EshelbianContact.cpp:835
EshelbianPlasticity::ContactTree::preProcess
MoFEMErrorCode preProcess()
function is run at the beginning of loop
Definition: EshelbianContact.cpp:973
EshelbianPlasticity::ContactTree::treeSurfPtr
boost::shared_ptr< OrientedBoxTreeTool > treeSurfPtr
Definition: EshelbianContact.hpp:99
EshelbianPlasticity::OpConstrainBoundaryHDivLhs_dU::contactTreePtr
boost::shared_ptr< ContactTree > contactTreePtr
Definition: EshelbianContact.hpp:194
ContactOps::alpha_contact_const
double alpha_contact_const
Definition: EshelbianContact.hpp:21
FaceElementForcesAndSourcesCore
ContactOps.hpp
EshelbianPlasticity::OpConstrainBoundaryL2Lhs_dP::OpConstrainBoundaryL2Lhs_dP
OpConstrainBoundaryL2Lhs_dP(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)
Definition: EshelbianContact.cpp:680
EshelbianPlasticity::OpConstrainBoundaryL2Rhs::OpConstrainBoundaryL2Rhs
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)
Definition: EshelbianContact.cpp:305
EshelbianPlasticity::ContactTree::Base
PostProcBrokenMeshInMoabBase< FaceElementForcesAndSourcesCore > Base
Definition: EshelbianContact.hpp:37
ContactOps::cn_contact
double cn_contact
Definition: EshelbianContact.hpp:20
EshelbianPlasticity::ContactTree::findFaceDataVecPtr
auto findFaceDataVecPtr(EntityHandle fe_ent)
Definition: EshelbianContact.hpp:76
EshelbianPlasticity::ContactTree::thTraction
Tag thTraction
Definition: EshelbianContact.hpp:109
EshelbianPlasticity::ContactTree::FaceData::slavePoint
std::array< double, 3 > slavePoint
Definition: EshelbianContact.hpp:56
Range
EshelbianPlasticity::ContactTree::FaceData::masterTractionNodes
std::array< double, 9 > masterTractionNodes
Definition: EshelbianContact.hpp:67
EshelbianPlasticity::OpConstrainBoundaryL2Lhs_dP::sdfMapRangePtr
boost::shared_ptr< std::map< int, Range > > sdfMapRangePtr
Definition: EshelbianContact.hpp:178
EshelbianPlasticity::OpTreeSearch::uH1Ptr
boost::shared_ptr< MatrixDouble > uH1Ptr
Definition: EshelbianContact.hpp:231
EshelbianPlasticity::OpConstrainBoundaryL2Rhs
Definition: EshelbianContact.hpp:118
EshelbianPlasticity::ContactTree::FaceData::rayPoint
std::array< double, 3 > rayPoint
Definition: EshelbianContact.hpp:58
EshelbianPlasticity::OpMoveNode::commonDataPtr
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
Definition: EshelbianContact.hpp:210
EshelbianPlasticity::OpConstrainBoundaryL2Lhs_dU::contactTreePtr
boost::shared_ptr< ContactTree > contactTreePtr
Definition: EshelbianContact.hpp:160
EshelbianPlasticity::OpMoveNode::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntitiesFieldData::EntData &data)
Definition: EshelbianContact.cpp:1042
UserDataOperator
ForcesAndSourcesCore::UserDataOperator UserDataOperator
Definition: HookeElement.hpp:75
EshelbianPlasticity::OpTreeSearch::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntitiesFieldData::EntData &data)
Definition: EshelbianContact.cpp:1123
EshelbianPlasticity::OpMoveNode::uH1Ptr
boost::shared_ptr< MatrixDouble > uH1Ptr
Definition: EshelbianContact.hpp:209
EshelbianPlasticity::ContactTree::FaceData::eleRadius
double eleRadius
Definition: EshelbianContact.hpp:60
EshelbianPlasticity::OpConstrainBoundaryL2Rhs::iNtegrate
MoFEMErrorCode iNtegrate(EntitiesFieldData::EntData &row_data)
Definition: EshelbianContact.cpp:342
EshelbianPlasticity::OpTreeSearch::mapGaussPtsPtr
std::vector< EntityHandle > * mapGaussPtsPtr
Definition: EshelbianContact.hpp:234
EshelbianPlasticity::ContactTree::maxOrder
const int maxOrder
Definition: EshelbianContact.hpp:115
AssemblyBoundaryEleOp
EshelbianPlasticity::OpConstrainBoundaryL2Rhs::contactTreePtr
boost::shared_ptr< ContactTree > contactTreePtr
Definition: EshelbianContact.hpp:129
EshelbianPlasticity::OpConstrainBoundaryL2Lhs_dP::iNtegrate
MoFEMErrorCode iNtegrate(EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
Definition: EshelbianContact.cpp:694
EshelbianPlasticity::ContactTree::getRootSetSurf
auto getRootSetSurf()
Definition: EshelbianContact.hpp:48
EshelbianPlasticity::ContactTree
Definition: EshelbianContact.hpp:34
EshelbianPlasticity::OpConstrainBoundaryL2Lhs_dP
Definition: EshelbianContact.hpp:164
ContactOps::alpha_contact_quadratic
double alpha_contact_quadratic
Definition: EshelbianContact.hpp:22
EshelbianPlasticity::OpTreeSearch::commonDataPtr
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
Definition: EshelbianContact.hpp:230
EshelbianPlasticity::OpConstrainBoundaryL2Rhs::commonDataPtr
boost::shared_ptr< ContactOps::CommonData > commonDataPtr
Definition: EshelbianContact.hpp:128
EshelbianPlasticity::OpConstrainBoundaryL2Lhs_dU::OpConstrainBoundaryL2Lhs_dU
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)
Definition: EshelbianContact.cpp:527
EshelbianPlasticity::ContactTree::FaceData::slaveTractionNodes
std::array< double, 9 > slaveTractionNodes
Definition: EshelbianContact.hpp:69
EshelbianPlasticity::ContactTree::thLargeX
Tag thLargeX
Definition: EshelbianContact.hpp:108
EshelbianPlasticity::OpTreeSearch
Definition: EshelbianContact.hpp:213