64std::unique_ptr<MaterialStatus>
67 return std::make_unique<LatticeViscoelasticStatus>(gp);
83 GaussPoint *rChGP = status->giveSlaveGaussPointVisco();
93 reducedStrainForViscoMat = totalStrain;
106 status->letTempLatticeStrainBe(totalStrain);
107 status->letTempLatticeStressBe(tempStress);
159 if ( ( type == IST_DryingShrinkageTensor ) ||
160 ( type == IST_AutogenousShrinkageTensor ) ||
161 ( type == IST_TotalShrinkageTensor ) ||
162 ( type == IST_CreepStrainTensor ) ||
163 ( type == IST_DryingShrinkageTensor ) ||
164 ( type == IST_ThermalStrainTensor ) ) {
181 OOFEM_ERROR(
"a1 must be set to the same value in both master and viscoelastic slave materials");
185 OOFEM_ERROR(
"a2 must be set to the same value in both master and viscoelastic slave materials");
198 slaveGpVisco( std::make_unique<
GaussPoint >(
gp->giveIntegrationRule(), 0,
gp->giveNaturalCoordinates(), 0.,
gp->giveMaterialMode() ) )
223 fprintf(file,
"\nViscoelastic material:");
#define REGISTER_Material(class)
Domain * domain
Link to domain object, useful for communicating with other FEM components.
virtual int checkConsistency()
Index giveSize() const
Returns the size of receiver.
IntegrationPointStatus * giveMaterialStatus(IntegrationPointStatusIDType key=IPSID_Default)
virtual void printOutputAt(FILE *file, TimeStep *tStep) const
Print receiver's output to given stream.
virtual void restoreContext(DataStream &stream, ContextMode mode)
GaussPoint * gp
Associated integration point.
virtual void saveContext(DataStream &stream, ContextMode mode)
virtual void updateYourself(TimeStep *)
LatticeLinearElastic(int n, Domain *d)
FloatMatrixF< 3, 3 > give2dLatticeStiffnessMatrix(MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const override
void initializeFrom(InputRecord &ir) override
double eNormalMean
Normal modulus.
MaterialStatus * giveStatus(GaussPoint *gp) const override
FloatMatrixF< 6, 6 > give3dLatticeStiffnessMatrix(MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const override
void saveContext(DataStream &stream, ContextMode mode) override
LatticeMaterialStatus(GaussPoint *g)
void initTempStatus() override
void updateYourself(TimeStep *) override
void restoreContext(DataStream &stream, ContextMode mode) override
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
LatticeViscoelasticStatus(GaussPoint *g)
Constructor.
void initTempStatus() override
void updateYourself(TimeStep *) override
void restoreContext(DataStream &stream, ContextMode mode) override
void printOutputAt(FILE *file, TimeStep *tStep) const override
Prints the receiver state to given stream.
void saveContext(DataStream &stream, ContextMode mode) override
std ::unique_ptr< GaussPoint > slaveGpVisco
GaussPoint * giveSlaveGaussPointVisco() const
FloatMatrixF< 6, 6 > give3dLatticeStiffnessMatrix(MatResponseMode rmode, GaussPoint *gp, TimeStep *atTime) const override
int viscoMat
'slave' material model number.
void initializeFrom(InputRecord &ir) override
LatticeViscoelastic(int n, Domain *d)
Constructor.
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *atTime) override
FloatMatrixF< 3, 3 > give2dLatticeStiffnessMatrix(MatResponseMode rmode, GaussPoint *gp, TimeStep *atTime) const override
int checkConsistency(void) override
FloatArrayF< 6 > giveLatticeStress3d(const FloatArrayF< 6 > &totalStrain, GaussPoint *gp, TimeStep *tStep) override
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
void initTempStatus() override
virtual double giveEModulus(GaussPoint *gp, TimeStep *tStep) const =0
Evaluation of the incremental modulus.
double giveAlphaTwo() const
void giveRealStressVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep) const override
virtual double computeCreepFunction(double t, double t_prime, GaussPoint *gp, TimeStep *tStep) const =0
Evaluation of the creep compliance function at time t when loading is acting from time t_prime.
double giveAlphaOne() const
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
virtual FloatArray computeStressIndependentStrainVector(GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const
#define _IFT_LatticeViscoelastic_viscoMat