Operator calculate element stiffens matrix.
More...
#include <users_modules/basic_finite_elements/cohesive_interface/src/CohesiveInterfaceElement.hpp>
Operator calculate element stiffens matrix.
Definition at line 475 of file CohesiveInterfaceElement.hpp.
◆ OpLhs()
CohesiveElement::CohesiveInterfaceElement::OpLhs::OpLhs |
( |
const std::string |
field_name, |
|
|
CommonData & |
common_data, |
|
|
PhysicalEquation & |
physical_eqations |
|
) |
| |
|
inline |
◆ doWork()
Definition at line 484 of file CohesiveInterfaceElement.hpp.
493 int nb_row = row_data.getIndices().size();
495 int nb_col = col_data.getIndices().size();
504 K.resize(nb_row,nb_col);
506 int nb_gauss_pts = row_data.getN().size1();
507 for(
int gg = 0;gg<nb_gauss_pts;gg++) {
509 double w = getGaussPts()(2,gg)*cblas_dnrm2(3,&getNormalsAtGaussPtsF3()(gg,0),1)*0.5;
511 for(
int nn = 0; nn<nb_row/3;nn++) {
512 for(
int dd = 0;
dd<3;
dd++) {
513 for(
int DD = 0;DD<3;DD++) {
514 ND(3*nn+
dd,DD) += row_data.getN(gg)[nn]*
D(
dd,DD);
518 for(
int nn = 0; nn<nb_row/3; nn++) {
519 for(
int dd = 0;
dd<3;
dd++) {
520 for(
int NN = 0; NN<nb_col/3; NN++) {
521 for(
int DD = 0; DD<3;DD++) {
522 K(3*nn+
dd,3*NN+DD) +=
w*
ND(3*nn+
dd,DD)*col_data.getN(gg)[NN];
529 nb_row,&row_data.getIndices()[0],
530 nb_col,&col_data.getIndices()[0],
533 }
catch (
const std::exception& ex) {
534 std::ostringstream ss;
535 ss <<
"throw in method: " << ex.what() << std::endl;
536 SETERRQ(PETSC_COMM_SELF,1,ss.str().c_str());
◆ commonData
CommonData& CohesiveElement::CohesiveInterfaceElement::OpLhs::commonData |
MatrixDouble CohesiveElement::CohesiveInterfaceElement::OpLhs::D |
MatrixDouble CohesiveElement::CohesiveInterfaceElement::OpLhs::K |
◆ ND
MatrixDouble CohesiveElement::CohesiveInterfaceElement::OpLhs::ND |
◆ physicalEqations
PhysicalEquation& CohesiveElement::CohesiveInterfaceElement::OpLhs::physicalEqations |
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.
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)