Evaluate stress at integration points.
More...
#include <users_modules/fracture_mechanics/src/MWLS.hpp>
|
| OpMWLSStressAtGaussPts (boost::shared_ptr< MatrixDouble > mat_pos_at_pts_ptr, boost::shared_ptr< MatrixDouble > mat_grad_pos_at_pts_ptr, boost::shared_ptr< CrackFrontElement > fe_singular_ptr, boost::shared_ptr< MWLSApprox > mwls_approx, const std::string stress_tag_name, bool calculate_derivative, bool testing=false) |
|
virtual | ~OpMWLSStressAtGaussPts ()=default |
|
| OpMWLSBase (boost::shared_ptr< MatrixDouble > mat_pos_at_pts_ptr, boost::shared_ptr< MatrixDouble > mat_grad_pos_at_pts_ptr, boost::shared_ptr< CrackFrontElement > fe_singular_ptr, boost::shared_ptr< MWLSApprox > mwls_approx, bool testing=false) |
|
virtual | ~OpMWLSBase ()=default |
|
MoFEMErrorCode | doWork (int side, EntityType type, DataForcesAndSourcesCore::EntData &data) |
|
Evaluate stress at integration points.
Definition at line 404 of file MWLS.hpp.
◆ OpMWLSStressAtGaussPts()
FractureMechanics::MWLSApprox::OpMWLSStressAtGaussPts::OpMWLSStressAtGaussPts |
( |
boost::shared_ptr< MatrixDouble > |
mat_pos_at_pts_ptr, |
|
|
boost::shared_ptr< MatrixDouble > |
mat_grad_pos_at_pts_ptr, |
|
|
boost::shared_ptr< CrackFrontElement > |
fe_singular_ptr, |
|
|
boost::shared_ptr< MWLSApprox > |
mwls_approx, |
|
|
const std::string |
stress_tag_name, |
|
|
bool |
calculate_derivative, |
|
|
bool |
testing = false |
|
) |
| |
|
inline |
Definition at line 410 of file MWLS.hpp.
417 : OpMWLSBase<VolumeElementForcesAndSourcesCore>(
418 mat_pos_at_pts_ptr, mat_grad_pos_at_pts_ptr, fe_singular_ptr,
◆ ~OpMWLSStressAtGaussPts()
virtual FractureMechanics::MWLSApprox::OpMWLSStressAtGaussPts::~OpMWLSStressAtGaussPts |
( |
| ) |
|
|
virtualdefault |
◆ doMWLSWork()
Do specific work in operator.
Is protected to prevent direct call. This can be only called by doWork method.
- Parameters
-
- Returns
- MoFEMErrorCode
Implements FractureMechanics::MWLSApprox::OpMWLSBase< VolumeElementForcesAndSourcesCore >.
Definition at line 1582 of file MWLS.cpp.
1587 cerr <<
"Element " << getFEEntityHandle() << endl;
1591 const int nb_gauss_pts = data.getN().size1();
1592 const bool use_global_base =
1593 mwlsApprox->getUseGlobalBaseAtMaterialReferenceConfiguration();
1598 stress.resize(6, nb_gauss_pts,
false);
1600 diff_stress.resize(18, nb_gauss_pts,
false);
1602 auto t_mwls_material_positions =
1603 getFTensor1FromMat<3>(
mwlsApprox->mwlsMaterialPositions);
1604 auto t_approx_base_point = getFTensor1FromMat<3>(
mwlsApprox->approxBasePoint);
1605 for (
int gg = 0; gg != nb_gauss_pts; ++gg) {
1607 auto t_material_positions = getFTensor1FromMat<3>(*
matPosAtPtsPtr);
1610 t_mat_pos(
i) = t_mwls_material_positions(
i);
1612 t_approx_base_pos(
i) = t_approx_base_point(
i);
1615 cerr <<
"material_positions " << t_mwls_material_positions << endl;
1616 cerr <<
"approx_base_point " << t_approx_base_point << endl;
1625 const auto &vals =
mwlsApprox->getDataApprox();
1627 for (
int ii = 0; ii != 6; ++ii)
1628 stress(ii, gg) = vals[ii];
1630 const auto &diff_vals =
mwlsApprox->getDiffDataApprox();
1631 for (
int ii = 0; ii != 6; ++ii) {
1632 for (
int jj = 0; jj != 3; ++jj)
1633 diff_stress(jj * 6 + ii, gg) = diff_vals(jj, ii);
1636 ++t_mwls_material_positions;
1637 ++t_approx_base_point;
1641 cerr <<
"stress " << stress << endl;
◆ calculateDerivative
const bool FractureMechanics::MWLSApprox::OpMWLSStressAtGaussPts::calculateDerivative |
◆ matGradPosAtPtsPtr
boost::shared_ptr<MatrixDouble> FractureMechanics::MWLSApprox::OpMWLSStressAtGaussPts::matGradPosAtPtsPtr |
◆ stressTagName
std::string FractureMechanics::MWLSApprox::OpMWLSStressAtGaussPts::stressTagName |
◆ testing
const bool FractureMechanics::MWLSApprox::OpMWLSStressAtGaussPts::testing |
The documentation for this struct was generated from the following files:
- users_modules/fracture_mechanics/src/MWLS.hpp
- users_modules/fracture_mechanics/src/impl/MWLS.cpp