40 #include "../sm/Materials/structuralmaterial.h" 41 #include "../sm/Materials/structuralms.h" 82 for (
int i = 1; i <= 6; ++i ) {
102 gps.emplace_back( std :: move(gp) );
109 this->
outfile.open( outname.c_str() );
117 FloatArray stressC, deltaStrain, strain, stress, res;
122 for (
int istep = 1; istep <= this->
numberOfSteps; ++istep ) {
142 for (
int iter = 1; iter < maxiter; iter++ ) {
162 OOFEM_LOG_INFO(
"*** Time step: %d (t = %.2e), Material %d, Iteration: %d, Residual = %e (tolerance %.2e)\n",
205 if ( !dynamic_cast< StructuralMaterial * >( mat.get() ) ) {
206 OOFEM_LOG_ERROR(
"Material %d is not a StructuralMaterial", mat->giveNumber());
220 for (
int var : this->
vars ) {
230 for (
int var : this->
vars ) {
bool contains(int value) const
EngngModelTimer timer
E-model timer.
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
#define _IFT_StructuralMaterialEvaluator_outputVariables
Variables (from integration point) to be written.
std::unique_ptr< TimeStep > currentStep
Current time step.
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
Returns material status of receiver in given integration point.
std::string giveOutputBaseFileName()
Returns base output file name to which extensions, like .out .vtu .osf should be added.
virtual void doStepOutput(TimeStep *tStep)
Prints the ouput of the solution step (using virtual this->printOutputAtservice) to the stream detemi...
#define OOFEM_LOG_ERROR(...)
void letStrainVectorBe(const FloatArray &v)
Assigns strain vector to given vector v.
bool solveForRhs(const FloatArray &b, FloatArray &answer, bool transpose=false)
Solves the system of linear equations .
virtual TimeStep * giveNextStep()
Returns next time step (next to current step) of receiver.
void startTimer(EngngModelTimerType t)
#define _IFT_StructuralMaterialEvaluator_stressControl
Integer list of the stress components which are controlled.
std::unique_ptr< TimeStep > previousStep
Previous time step.
double & at(int i)
Coefficient access function.
void beSubMatrixOf(const FloatMatrix &src, int topRow, int bottomRow, int topCol, int bottomCol)
Assigns to the receiver the sub-matrix of another matrix.
This class implements a structural material status information.
virtual int checkConsistency()
Allows programmer to test some receiver's internal data, before computation begins.
void stopTimer(EngngModelTimerType t)
MaterialMode
Type representing material mode of integration point.
REGISTER_EngngModel(ProblemSequence)
int & at(int i)
Coefficient access function.
bool isTheFirstStep()
Check if receiver is first step.
virtual void updateYourself(TimeStep *tStep)
Updates internal state of receiver after finishing time step.
virtual ~StructuralMaterialEvaluator()
#define OOFEM_LOG_INFO(...)
Material * giveMaterial(int n)
Service for accessing particular domain material model.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description in input reader.
std::vector< std::unique_ptr< Material > > & giveMaterials()
int numberOfSteps
Total number of time steps.
int ndomains
Number of receiver domains.
virtual void give3dMaterialStiffnessMatrix(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
Computes full 3d material stiffness matrix at given integration point, time, respecting load history ...
#define _IFT_StructuralMaterialEvaluator_componentFunctions
Integer list of time functions for each component.
int giveNumberOfMaterialModels() const
Returns number of material models in domain.
Abstract base class for all material models.
double giveIntrinsicTime()
Returns intrinsic time, e.g. time in which constitutive model is evaluated.
#define _IFT_StructuralMaterialEvaluator_numberOfTimeSteps
virtual void giveRealStressVector_3d(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
Function * giveFunction(int n)
Service for accessing particular domain load time function.
#define _IFT_StructuralMaterialEvaluator_deltat
Class representing vector of real numbers.
virtual int checkConsistency()
Allows programmer to test some receiver's internal data, before computation begins.
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
std::vector< std::unique_ptr< GaussPoint > > gps
IntArray sControl
Time functions controlling each component of the deviatoric part of the stress.
int giveNumberOfTimeStepWhenIcApply()
Returns the time step number, when initial conditions should apply.
double computeNorm() const
Computes the norm (or length) of the vector.
virtual void printYourself() const
Print receiver on stdout.
void followedBy(const IntArray &b, int allocChunk=0)
Appends array b at the end of receiver.
#define _IFT_StructuralMaterialEvaluator_keepTangent
void zero()
Zeroes all coefficients of receiver.
#define _IFT_StructuralMaterialEvaluator_tolerance
Tolerance for stress control.
void printYourself() const
Prints matrix to stdout. Useful for debugging.
Abstract base class for all "structural" constitutive models.
bool suppressOutput
Flag for suppressing output to file.
virtual void solveYourself()
Starts solution process.
const char * __InternalStateTypeToString(InternalStateType _value)
Abstract base class representing the "problem" under consideration.
the oofem namespace is to define a context or scope in which all oofem names are defined.
Domain * giveDomain(int n)
Service for accessing particular problem domain.
const FloatArray & giveStrainVector() const
Returns the const pointer to receiver's strain vector.
double deltaT
Time increment.
int giveNumberOfRows() const
Returns number of rows of receiver.
StructuralMaterialEvaluator(int i, EngngModel *_master=NULL)
Class representing integration point in finite element program.
#define OOFEM_WARNING(...)
Class representing solution step.
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in Reduced form.
void resize(int s)
Resizes receiver towards requested size.