525 if (row_type != MBVERTEX) {
528 VectorInt &row_indices = row_data.getIndices();
529 const int nb_rows = row_indices.size();
532 VectorInt &col_indices = col_data.getIndices();
533 const int nb_cols = col_indices.size();
538 for (
int nn = 0; nn != 3; ++nn) {
539 if (row_indices[nn] != -1) {
540 if (row_data.getFieldDofs()[nn]->getEnt() != conn[nn]) {
542 "Data inconsistency");
545 for (
int dd = 0;
dd != 3; ++
dd) {
546 if (col_indices[3 * nn +
dd] != -1) {
547 if (col_data.getFieldDofs()[3 * nn +
dd]->getEnt() != conn[nn]) {
549 "Data inconsistency");
555 auto row_dofs = getFEMethod()->getRowDofsPtr();
556 for (
auto it = row_dofs->begin(); it != row_dofs->end(); ++it) {
557 int side = it->get()->getSideNumber();
558 if (conn[side] != it->get()->getEnt()) {
560 "Data inconsistency");
564 auto col_dofs = getFEMethod()->getColDofsPtr();
565 for (
auto it = col_dofs->begin(); it != col_dofs->end(); ++it) {
566 int side = it->get()->getSideNumber();
567 if (conn[side] != it->get()->getEnt()) {
569 "Data inconsistency");
573 cMat.resize(3, 9,
false);
578 int nb_dofs = col_data.getFieldData().size();
586 "ADOL-C function evaluation with error r = %d",
r);
589 auto check_isnormal = [](
double v) {
591 if (
v != 0 && !std::isnormal(
v)) {
593 "Not a number %3.4e",
v);
598 for (
int rr = 0; rr != nb_rows; rr++) {
599 if (row_indices[rr] != -1) {
611 nb_cols, &col_indices[0], &
cMat(0, 0), ADD_VALUES);
613 for (
int rr = 0; rr != nb_rows; ++rr) {
614 if (row_indices[rr] != -1) {
618 "Vector for given DOF in map not found");
620 for (
int cc = 0; cc != nb_cols; ++cc) {
621 if (col_indices[cc] != -1) {
626 &col_indices[0], &
cMat(rr, 0), ADD_VALUES);