Set distance to vertices on mesh.
119 {
120 PetscFunctionBegin;
123 auto it = field_ents->lower_bound(
124 FieldEntity::getLoBitNumberUId(field_bit_number));
125 auto hi_it = field_ents->upper_bound(
126 FieldEntity::getHiBitNumberUId(field_bit_number));
127
128 for(;it!=hi_it;it++) {
130 if(type!=MBVERTEX) {
131 continue;
132 }
134 double coords[3];
140
142
143 dofs[0] = cblas_dnrm2(3,
delta,1);
144 }
145
146 it = field_ents->lower_bound(
147 FieldEntity::getLoBitNumberUId(field_bit_number));
148 for(;it!=hi_it;it++) {
150 if(type!=MBEDGE) {
151 continue;
152 }
154 int num_ndodes;
157 double coords[3*num_ndodes];
159 cblas_daxpy(3,1,&coords[3],1,coords,1);
160 cblas_dscal(3,0.5,coords,1);
165
166 auto conn_it0 = field_ents->find(
167 FieldEntity::getLoLocalEntityBitNumber(field_bit_number, conn[0]));
168 auto conn_it1 = field_ents->find(
169 FieldEntity::getLoLocalEntityBitNumber(field_bit_number, conn[1]));
170
171 if(conn_it0==field_ents->end()) {
173 }
174 if (conn_it1 == field_ents->end()) {
176 }
177
178 VectorAdaptor vec_conn0 = conn_it0->get()->getEntFieldData();
179 VectorAdaptor vec_conn1 = conn_it1->get()->getEntFieldData();
180
181 double ave_delta = 0.5*(vec_conn0[0]+vec_conn1[0]);
182 double edge_shape_function_val = 0.25;
186 } else {
188 }
189
191
192
193 dofs[0] = (cblas_dnrm2(3,
delta,1)-ave_delta)/edge_shape_function_val;
194 }
195 PetscFunctionReturn(0);
196 }
static PetscErrorCode ierr
#define LOBATTO_PHI0(x)
Definitions taken from Hermes2d code.
@ AINSWORTH_LEGENDRE_BASE
Ainsworth Cole (Legendre) approx. base .
@ MOFEM_DATA_INCONSISTENCY
virtual const FieldEntity_multiIndex * get_field_ents() const =0
Get the field ents object.
VectorShallowArrayAdaptor< double > VectorAdaptor
constexpr auto field_name
static constexpr double delta
PetscErrorCode findClosestPointToTheSurface(const double x, const double y, const double z, double &dx, double &dy, double &dz)
Find point on surface which is closet to given point coordinates.
virtual FieldBitNumber get_field_bit_number(const std::string name) const =0
get field bit number