Skip to content
Permalink
Browse files

Merge pull request #13452 from bwspenc/eigen_zero_fhat

Disable volumetric_locking_correction for face materials
  • Loading branch information...
dschwen committed May 22, 2019
2 parents 115f43f + 98b23d8 commit a2bc22b77413802d2b4a7117ac7616c88366ea02
@@ -32,6 +32,7 @@
using ADMaterial<compute_stage>::_fe_problem; \
using ADMaterial<compute_stage>::_assembly; \
using ADMaterial<compute_stage>::_mesh; \
using ADMaterial<compute_stage>::isBoundaryMaterial; \
using ADMaterial<compute_stage>::copyDualNumbersToValues; \
using ADMaterial<compute_stage>::_displacements

@@ -31,7 +31,7 @@ class ADComputeFiniteStrain : public ADComputeIncrementalStrainBase<compute_stag
public:
ADComputeFiniteStrain(const InputParameters & parameters);

virtual void computeProperties();
void computeProperties() override;

static MooseEnum decompositionType();

@@ -24,7 +24,7 @@ class ComputeFiniteStrain : public ComputeIncrementalStrainBase
public:
ComputeFiniteStrain(const InputParameters & parameters);

virtual void computeProperties();
void computeProperties() override;

static MooseEnum decompositionType();

@@ -50,7 +50,7 @@ class ComputeStrainBase : public DerivativeMaterialInterface<Material>

const MaterialProperty<RankTwoTensor> * _global_strain;

bool _volumetric_locking_correction;
const bool _volumetric_locking_correction;
const Real & _current_elem_volume;
};

@@ -127,12 +127,7 @@ ADComputeFiniteStrain<compute_stage>::computeQpIncrements(ADRankTwoTensor & tota
case DecompMethod::TaylorExpansion:
{
// inverse of _Fhat
ADRankTwoTensor invFhat;
static const RankTwoTensor zero;
if (_Fhat[_qp] == zero)
invFhat.zero();
else
invFhat = _Fhat[_qp].inverse();
const ADRankTwoTensor invFhat = _Fhat[_qp].inverse();

// A = I - _Fhat^-1
ADRankTwoTensor A(RankTwoTensorType<compute_stage>::type::initIdentity);
@@ -211,7 +206,7 @@ ADComputeFiniteStrain<compute_stage>::computeQpIncrements(ADRankTwoTensor & tota
N3.vectorOuterProduct(e_vector.column(2), e_vector.column(2));

const auto Uhat = N1 * lambda1 + N2 * lambda2 + N3 * lambda3;
ADRankTwoTensor invUhat(Uhat.inverse());
const ADRankTwoTensor invUhat(Uhat.inverse());

rotation_increment = _Fhat[_qp] * invUhat;

@@ -46,7 +46,8 @@ ADComputeStrainBase<compute_stage>::ADComputeStrainBase(const InputParameters &
_global_strain(isParamValid("global_strain")
? &adGetADMaterialProperty<RankTwoTensor>(_base_name + "global_strain")
: nullptr),
_volumetric_locking_correction(adGetParam<bool>("volumetric_locking_correction")),
_volumetric_locking_correction(adGetParam<bool>("volumetric_locking_correction") &&
!this->isBoundaryMaterial()),
_current_elem_volume(_assembly.elemVolume())
{
for (unsigned int i = 0; i < _eigenstrains.size(); ++i)
@@ -141,12 +141,7 @@ ComputeFiniteStrain::computeQpIncrements(RankTwoTensor & total_strain_increment,
case DecompMethod::TaylorExpansion:
{
// inverse of _Fhat
RankTwoTensor invFhat;
static const RankTwoTensor zero;
if (_Fhat[_qp] == zero)
invFhat.zero();
else
invFhat = _Fhat[_qp].inverse();
const RankTwoTensor invFhat = _Fhat[_qp].inverse();

// A = I - _Fhat^-1
RankTwoTensor A(RankTwoTensor::initIdentity);
@@ -222,8 +217,8 @@ ComputeFiniteStrain::computeQpIncrements(RankTwoTensor & total_strain_increment,
N2.vectorOuterProduct(e_vector.column(1), e_vector.column(1));
N3.vectorOuterProduct(e_vector.column(2), e_vector.column(2));

RankTwoTensor Uhat = N1 * lambda1 + N2 * lambda2 + N3 * lambda3;
RankTwoTensor invUhat(Uhat.inverse());
const RankTwoTensor Uhat = N1 * lambda1 + N2 * lambda2 + N3 * lambda3;
const RankTwoTensor invUhat(Uhat.inverse());

rotation_increment = _Fhat[_qp] * invUhat;

@@ -47,7 +47,8 @@ ComputeStrainBase::ComputeStrainBase(const InputParameters & parameters)
_global_strain(isParamValid("global_strain")
? &getMaterialProperty<RankTwoTensor>(_base_name + "global_strain")
: nullptr),
_volumetric_locking_correction(getParam<bool>("volumetric_locking_correction")),
_volumetric_locking_correction(getParam<bool>("volumetric_locking_correction") &&
!isBoundaryMaterial()),
_current_elem_volume(_assembly.elemVolume())
{
for (unsigned int i = 0; i < _eigenstrains.size(); ++i)

0 comments on commit a2bc22b

Please sign in to comment.
You can’t perform that action at this time.