1335 {
1337 if (type != MBVERTEX) {
1339 }
1340
1342
1343 const double *dx;
1345
1346 const double *x0;
1350 for (
int dd = 0;
dd != 9;
dd++) {
1351 int loc_idx = data.getLocalIndices()[
dd];
1352 if (loc_idx != -1) {
1355 } else {
1357 }
1358 }
1361
1362
1364 data.getDiffN(0));
1365
1366
1368 for (int nn = 0; nn != 3; nn++) {
1370 continue;
1371 auto griffith_force =
1373
1374 for (
int dd = 0;
dd != 3;
dd++) {
1375 const int idx = 3 * nn +
dd;
1378 }
1379 }
1382 }
1385 };
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#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()
#define CHKERR
Inline error check.
const Tensor2_symmetric_Expr< const ddTensor0< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, j > dd(const Tensor0< T * > &a, const Index< i, Dim > index1, const Index< j, Dim > index2, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz)
auto getVectorAdaptor(T1 ptr, const size_t n)
Get Vector adaptor.
static constexpr double delta
ublas::vector< TYPE > currentCoords
ublas::vector< TYPE > referenceCoords
MoFEMErrorCode calculateGriffithForce(const double gc, const double beta, const MatrixDouble &diff_n)
ublas::vector< TYPE > griffithForce
MoFEMErrorCode setLambdaIndices(FaceElementForcesAndSourcesCore::UserDataOperator *fe_ptr, const std::string &lambda_field_name)
VectorInt3 rowLambdaIndices
AuxFunctions< double > auxFun
boost::shared_ptr< ArcLengthCtx > arcPtr