1013 {
1015 if (type != MBVERTEX)
1017
1018
1022
1025
1027 data.getDiffN(0));
1028
1029
1030 nF.resize(9,
false);
1032 for (int nn = 0; nn != 3; nn++) {
1035 for (
int dd = 0;
dd != 3;
dd++) {
1036 int idx = 3 * nn +
dd;
1038 }
1039 }
1040 }
1041
1042
1044 &
nF[0], ADD_VALUES);
1045
1047 }
#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 ...
#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)
MoFEMErrorCode VecSetValues(Vec V, const EntitiesFieldData::EntData &data, const double *ptr, InsertMode iora)
Assemble PETSc vector.
ublas::vector< TYPE > currentCoords
MoFEMErrorCode calculateGriffithForce(const double gc, const double beta, const MatrixDouble &diff_n)
ublas::vector< TYPE > griffithForce
MoFEMErrorCode setLambdaNodes(FaceElementForcesAndSourcesCore::UserDataOperator *fe_ptr, const std::string &lambda_field_name)
VectorDouble3 lambdaAtNodes
ublas::vector< int > rowIndices
MoFEMErrorCode setLambdaIndices(FaceElementForcesAndSourcesCore::UserDataOperator *fe_ptr, const std::string &lambda_field_name)
VectorInt3 rowLambdaIndices
MoFEMErrorCode setIndices(DataForcesAndSourcesCore::EntData &data)
AuxFunctions< double > auxFun