Assemble tangent matrix.
More...
#include <users_modules/minimal_surface_equation/src/MinimalSurfaceElement.hpp>
Assemble tangent matrix.
- Examples
- minimal_surface_area.cpp.
Definition at line 328 of file MinimalSurfaceElement.hpp.
◆ OpAssembleTangent()
MinimalSurfaceEquation::MinimalSurfaceElement::OpAssembleTangent::OpAssembleTangent |
( |
const string |
field_name, |
|
|
CommonData & |
common_data |
|
) |
| |
|
inline |
◆ doWork()
Definition at line 340 of file MinimalSurfaceElement.hpp.
346 int row_nb_dofs = row_data.getIndices().size();
347 if (row_nb_dofs == 0) {
350 int col_nb_dofs = col_data.getIndices().size();
351 if (col_nb_dofs == 0) {
354 kTangent.resize(row_nb_dofs, col_nb_dofs,
false);
356 auxVec.resize(col_nb_dofs,
false);
357 auxMat.resize(col_nb_dofs, 2,
false);
358 int nb_gauss_pts = row_data.getN().size1();
359 for (
int gg = 0; gg != nb_gauss_pts; gg++) {
361 double val = getGaussPts()(2, gg) * getArea();
366 ublas::matrix_row<MatrixDouble> an_pow3_by_grad_u(
370 noalias(
auxVec) = prod(col_diff_n, an_pow3_by_grad_u);
378 val * prod(row_diff_n, trans(an * col_diff_n -
auxMat));
382 &*row_data.getIndices().data().begin(), col_nb_dofs,
383 &*col_data.getIndices().data().begin(),
384 &*
kTangent.data().begin(), ADD_VALUES);
◆ auxMat
MatrixDouble MinimalSurfaceEquation::MinimalSurfaceElement::OpAssembleTangent::auxMat |
◆ auxVec
VectorDouble MinimalSurfaceEquation::MinimalSurfaceElement::OpAssembleTangent::auxVec |
◆ commonData
CommonData& MinimalSurfaceEquation::MinimalSurfaceElement::OpAssembleTangent::commonData |
◆ kTangent
MatrixDouble MinimalSurfaceEquation::MinimalSurfaceElement::OpAssembleTangent::kTangent |
The documentation for this struct was generated from the following file:
MoFEMErrorCode MatSetValues(Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const double *ptr, InsertMode iora)
Assemble PETSc matrix.