35#ifndef structuralfe2material_h
36#define structuralfe2material_h
45#define _IFT_StructuralFE2Material_Name "structfe2material"
46#define _IFT_StructuralFE2Material_fileName "filename"
47#define _IFT_StructuralFE2Material_useNumericalTangent "use_num_tangent"
52class PrescribedGradientHomogenization;
58 std :: unique_ptr< EngngModel >
rve;
80 bool createRVE(
int n,
const std :: string &inputfile,
int rank);
87 const char *
giveClassName()
const override {
return "StructuralFE2MaterialStatus"; }
133 const char *
giveClassName()
const override {
return "StructuralFE2Material"; }
EngngModel * giveRVE() const
const char * giveClassName() const override
PrescribedGradientHomogenization * giveBC()
void setTimeStep(TimeStep *tStep)
Copies time step data to RVE.
void initTempStatus() override
StructuralFE2MaterialStatus(int rank, GaussPoint *g, const std ::string &inputfile)
bool createRVE(int n, const std ::string &inputfile, int rank)
Creates/Initiates the RVE problem.
FloatArray mNormalDir
Interface normal direction.
void addStateVariables(const MaterialStatus &iStatus) override
void saveContext(DataStream &stream, ContextMode mode) override
const FloatArray & giveNormal() const
void letNormalBe(FloatArray iN)
void copyStateVariables(const MaterialStatus &iStatus) override
Functions for MaterialStatusMapperInterface.
void restoreContext(DataStream &stream, ContextMode mode) override
void computeTangent(TimeStep *tStep)
void updateYourself(TimeStep *tStep) override
PrescribedGradientHomogenization * bc
Boundary condition in RVE that performs the computational homogenization.
FloatMatrix & giveTangent()
std ::unique_ptr< EngngModel > rve
The RVE.
void giveInputRecord(DynamicInputRecord &input) override
const char * giveInputRecordName() const override
FloatMatrixF< 4, 4 > givePlaneStrainStiffMtrx(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
void initializeFrom(InputRecord &ir) override
const char * giveClassName() const override
FloatArrayF< 6 > giveRealStressVector_3d(const FloatArrayF< 6 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
FloatMatrixF< 6, 6 > give3dMaterialStiffnessMatrix(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
bool isCharacteristicMtrxSymmetric(MatResponseMode rMode) const override
FloatMatrixF< 3, 3 > givePlaneStressStiffMtrx(MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) const override
StructuralFE2Material(int n, Domain *d)
FloatArrayF< 3 > giveRealStressVector_PlaneStress(const FloatArrayF< 3 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_StressControl.
StructuralMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralMaterialStatus with IntegrationPoint g.
StructuralMaterial(int n, Domain *d)
#define _IFT_StructuralFE2Material_Name