Go to the documentation of this file.
12 #include "RankTwoTensor.h"
15 #include "libmesh/dense_matrix.h"
16 #include "libmesh/dense_vector.h"
19 class InputParameters;
62 std::vector<DenseVector<Real>>
_b;
64 DenseMatrix<Real>
_AT;
68 std::vector<DenseVector<Real>>
_x;
void initQpStatefulProperties()
DenseMatrix< Real > _AT
Transpose of A.
std::vector< DenseVector< Real > > _x
The solution vector for each unique component of the adjusted eigenstrain.
DenseMatrix< Real > _A
The (num q points x ncols) array for the least squares. Holds 1, xcoor, ycoor, zcoor.
std::vector< Real > _vals
Vector to hold the adjusted strain as computed with _x.
ComputeReducedOrderEigenstrain(const InputParameters ¶meters)
void prepareEigenstrain()
Compute either the volume average or linear eigenstrain field in an element.
const bool _second_order
Whether the mesh is made of second order elements.
static InputParameters validParams()
void applyEigenstrain(MaterialProperty< RankTwoTensor > &strain)
Subtract adjusted eigenstrain from strain.
const unsigned _ncols
Number of columns in A matrix (1 plus mesh dimension)
std::vector< RankTwoTensor > _eigsum
The sum of all eigenstrains at each integration point.
InputParameters validParams< ComputeReducedOrderEigenstrain >()
std::vector< DenseVector< Real > > _b
The b array holding the unique eigenstrain components for each integration point.
void sumEigenstrain()
Add contributions from every eigenstrain at each integration point.
RankTwoTensor _adjusted_eigenstrain
Filled with _vals and subracted from strain.
DenseVector< Real > _ATb
Transpose of A times b.
void computeQpEigenstrain()
Compute the eigenstrain and store in _eigenstrain.
std::vector< const MaterialProperty< RankTwoTensor > * > _eigenstrains
std::vector< MaterialPropertyName > _input_eigenstrain_names
ComputeEigenstrainBase is the base class for eigenstrain tensors.