35#ifndef structuralslipfe2material_h
36#define structuralslipfe2material_h
47#define _IFT_StructuralSlipFE2Material_Name "structslipfe2material"
48#define _IFT_StructuralSlipFE2Material_useExternalStiffness "use_ext_stiffness"
49#define _IFT_StructuralSlipFE2Material_allGPResults "export_all_gps"
50#define _IFT_StructuralSlipFE2Material_outputSelectedResults "output_selected_el_gps"
51#define _IFT_StructuralSlipFE2Material_dStressdEps "dsde"
52#define _IFT_StructuralSlipFE2Material_dBStressdEps "dbsde"
53#define _IFT_StructuralSlipFE2Material_dRStressdEps "drsde"
54#define _IFT_StructuralSlipFE2Material_dStressdS "dsds"
55#define _IFT_StructuralSlipFE2Material_dBStressdS "dbsds"
56#define _IFT_StructuralSlipFE2Material_dRStressdS "drsds"
57#define _IFT_StructuralSlipFE2Material_dStressdG "dsdg"
58#define _IFT_StructuralSlipFE2Material_dBStressdG "dbsdg"
59#define _IFT_StructuralSlipFE2Material_dRStressdG "drsdg"
65class PrescribedGradientHomogenization;
66class PrescribedDispSlipHomogenization;
72 std :: unique_ptr< EngngModel >
rve;
107 bool createRVE(
const std :: string &inputfile,
int rank,
int el,
int gp);
117 const char *
giveClassName()
const override {
return "StructuralSlipFE2MaterialStatus"; }
194 const char *
giveClassName()
const override {
return "StructuralSlipFE2Material"; }
GaussPoint * gp
Associated integration point.
StructuralFE2Material(int n, Domain *d)
StructuralMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralMaterialStatus with IntegrationPoint g.
void setdBStressdSTangent(const FloatMatrix &iTangent)
const FloatArray & giveSlipVector() const
PrescribedDispSlipHomogenization * giveBC()
FloatArray tempRStressVector
FloatMatrix dStressdSTangent
FloatMatrix dRStressdGTangent
void setdRStressdGTangent(const FloatMatrix &iTangent)
FloatMatrix dStressdGTangent
const FloatArray & giveTempSlipVector() const
FloatArray slipGradVector
FloatMatrix dStressdEpsTangent
const FloatArray & giveSlipGradVector() const
void setdStressdEpsTangent(const FloatMatrix &iTangent)
void setdRStressdSTangent(const FloatMatrix &iTangent)
void initTempStatus() override
void setTimeStep(TimeStep *tStep)
void updateYourself(TimeStep *tStep) override
void letTempReinfStressVectorBe(const FloatArray &v)
void computeTangent(TimeStep *tStep)
FloatArray tempBStressVector
FloatArray tempSlipVector
FloatMatrix dBStressdEpsTangent
FloatArray tempSlipGradVector
const FloatArray & giveReinfStressVector() const
const FloatArray & giveTempSlipGradVector() const
FloatMatrix dBStressdSTangent
FloatMatrix dRStressdEpsTangent
void setdStressdGTangent(const FloatMatrix &iTangent)
std ::unique_ptr< EngngModel > rve
The RVE.
FloatMatrix & givedStressdEpsTangent()
Setters and getters.
FloatMatrix dRStressdSTangent
void setdBStressdEpsTangent(const FloatMatrix &iTangent)
EngngModel * giveRVE() const
FloatMatrix dBStressdGTangent
PrescribedDispSlipHomogenization * bc
Boundary condition in RVE that performs the computational homogenization.
void setdStressdSTangent(const FloatMatrix &iTangent)
void setdBStressdGTangent(const FloatMatrix &iTangent)
const FloatArray & giveTransferStressVector() const
void setdRStressdEpsTangent(const FloatMatrix &iTangent)
const char * giveClassName() const override
bool createRVE(const std ::string &inputfile, int rank, int el, int gp)
void letTempSlipGradVectorBe(const FloatArray &v)
StructuralSlipFE2MaterialStatus(int rank, GaussPoint *g, const std ::string &inputfile, int el, int gp)
void letTempSlipVectorBe(const FloatArray &v)
void letTempTransferStressVectorBe(const FloatArray &v)
void giveInputRecord(DynamicInputRecord &input) override
FloatMatrix givendBStressdEpsTangent
FloatMatrix givendBStressdGTangent
StructuralSlipFE2Material(int n, Domain *d)
FloatMatrix givendStressdSTangent
FloatMatrix givendRStressdSTangent
virtual void giveHomogenizedFields(FloatArray &stress, FloatArray &bStress, FloatArray &rStress, const FloatArray &strain, const FloatArray &slip, const FloatArray &slipGradient, GaussPoint *gp, TimeStep *tStep)
FloatMatrix givendRStressdEpsTangent
virtual void giveSensitivities(FloatMatrix &dStressdEps, FloatMatrix &dStressdS, FloatMatrix &dStressdG, FloatMatrix &dBStressdEps, FloatMatrix &dBStressdS, FloatMatrix &dBStressdG, FloatMatrix &dRStressdEps, FloatMatrix &dRStressdS, FloatMatrix &dRStressdG, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
FloatMatrix givendStressdGTangent
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
FloatMatrix givendStressdEpsTangent
const char * giveInputRecordName() const override
void initializeFrom(InputRecord &ir) override
FloatMatrix givendRStressdGTangent
FloatMatrixF< 3, 3 > givePlaneStressStiffMtrx(MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 3 > giveRealStressVector_PlaneStress(const FloatArrayF< 3 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_StressControl.
const char * giveClassName() const override
FloatMatrix givendBStressdSTangent
#define _IFT_StructuralSlipFE2Material_Name