719 if (row_type != MBVERTEX) {
723 VectorInt &row_indices = row_data.getIndices();
724 const int nb_rows = row_indices.size();
727 VectorInt &col_indices = col_data.getIndices();
728 const int nb_cols = col_indices.size();
731 cMat.resize(3, 9,
false);
736 int nb_dofs = col_data.getFieldData().size();
744 "ADOL-C function evaluation with error r = %d",
r);
751 const BitRefLevel bit = getFEMethod()->problemPtr->getBitRefLevel();
752 Range adj_side_elems;
754 bit, &face, 1, 3, adj_side_elems);
755 adj_side_elems = adj_side_elems.subset_by_type(MBTET);
756 if (adj_side_elems.size() != 1) {
758 "expect 1 tet but is %u", adj_side_elems.size());
761 int side_number, sense, offset;
763 side_elem, face, side_number, sense, offset);
776 auto check_isnormal = [](
double v) {
778 if (
v != 0 && !std::isnormal(
v)) {
784 for (
int rr = 0; rr != nb_rows; ++rr) {
785 if (row_indices[rr] != -1) {
800 nb_cols, &col_indices[0], &
cMat(0, 0), ADD_VALUES);
802 for (
int rr = 0; rr != nb_rows; ++rr) {
803 if (row_indices[rr] != -1) {
807 "Vector for given DOF in map not found");
809 for (
int cc = 0; cc != nb_cols; ++cc) {
810 if (col_indices[cc] != -1) {
815 &col_indices[0], &
cMat(rr, 0), ADD_VALUES);