66       OOFEM_ERROR(
"Attempted to evaluate E modulus at time lower than casting time");
    74     for ( mu = 1; mu <= 
nUnits; mu++ ) {
    77         sum += ( 1 - lambdaMu ) / Emu;
    94     FloatArray *sigmaVMu = NULL, reducedAnswer, help;
    99       OOFEM_ERROR(
"Attempted to evaluate creep strain for time lower than casting time");
   107     if ( mode == VM_Incremental ) {
   108         for ( mu = 1; mu <= 
nUnits; mu++ ) {
   114                 help.add(* sigmaVMu);
   116                 reducedAnswer.add(help);
   121             help = reducedAnswer;
   123             reducedAnswer.beProductOf(C, help);
   125             reducedAnswer.times(1. / v);
   128         answer = reducedAnswer;
   145     if ( deltaT / tauMu > 30 ) {
   148         betaMu = exp(-( deltaT ) / tauMu);
   164     if ( deltaT / tauMu < 1.e-5 ) {
   165         lambdaMu = 1 - 0.5 * ( deltaT / tauMu ) + 1 / 6 * ( pow(deltaT / tauMu, 2) ) - 1 / 24 * ( pow(deltaT / tauMu, 3) );
   166     } 
else if ( deltaT / tauMu > 30 ) {
   167         lambdaMu = tauMu / deltaT;
   169         lambdaMu = ( 1.0 -  exp(-( deltaT ) / tauMu) ) * tauMu / deltaT;
   196     FloatArray help, SigmaVMu, deltaEps0, deltaSigma;
   203       for ( 
int mu = 1; mu <= 
nUnits; mu++ ) {
   224     for ( 
int mu = 1; mu <= 
nUnits; mu++ ) {
   229         help.
times(lambdaMu);
   234             SigmaVMu.
times(betaMu);
   263     OOFEM_ERROR(
"function has not been yet implemented to KelvinChainSolidMaterialStatus.C");
 static int giveSizeOfVoigtSymVector(MaterialMode mmode)
Returns the size of symmetric part of a reduced stress/strain vector according to given mode...
 
MaterialMode giveMaterialMode()
Returns corresponding material mode of receiver. 
 
void subtract(const FloatArray &src)
Subtracts array src to receiver. 
 
virtual MaterialStatus * giveStatus(GaussPoint *gp) const 
Returns material status of receiver in given integration point. 
 
virtual bool isActivated(TimeStep *tStep)
 
double giveCharTime(int) const 
Access to the characteristic time of a given unit. 
 
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record. 
 
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables. 
 
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
 
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream. 
 
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
 
void computeHiddenVars(GaussPoint *gp, TimeStep *tStep)
 
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types. 
 
virtual void giveRealStressVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
Computes the real stress vector for given total strain and integration point. 
 
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream. 
 
This class implements associated Material Status to RheoChainMaterial. 
 
FloatArray EparVal
Partial moduli of individual units. 
 
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream. 
 
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream. 
 
virtual void giveRealStressVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
Computes the real stress vector for given total strain and integration point. 
 
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream. 
 
This class implements a rheologic chain model describing a viscoelastic material. ...
 
virtual void giveEigenStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode)
Computes, for the given integration point, the strain vector induced by the stress history (typically...
 
KelvinChainSolidMaterial(int n, Domain *d)
 
double giveEparModulus(int iChain)
Access to partial modulus of a given unit. 
 
void letTempHiddenVarsVectorBe(int i, FloatArray &valueArray)
 
double giveTimeIncrement()
Returns solution step associated time increment. 
 
void giveUnitStiffnessMatrix(FloatMatrix &answer, GaussPoint *gp, TimeStep *tStep)
Evaluation of elastic stiffness matrix for unit Young's modulus. 
 
virtual MaterialStatus * CreateStatus(GaussPoint *gp) const 
Creates new copy of associated status and inserts it into given integration point. 
 
void giveUnitComplianceMatrix(FloatMatrix &answer, GaussPoint *gp, TimeStep *tStep)
Evaluation of elastic compliance matrix for unit Young's modulus. 
 
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix and anArray. 
 
virtual double giveEModulus(GaussPoint *gp, TimeStep *tStep)
Evaluation of the incremental modulus. 
 
const FloatArray & giveTempStrainVector() const 
Returns the const pointer to receiver's temporary strain vector. 
 
virtual double computeBetaMu(GaussPoint *gp, TimeStep *tStep, int Mu)
factors for exponential algorithm 
 
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream. 
 
bool isEmpty() const 
Returns true if receiver is empty. 
 
KelvinChainSolidMaterialStatus(int n, Domain *d, GaussPoint *g, int nunits)
 
double giveIntrinsicTime()
Returns intrinsic time, e.g. time in which constitutive model is evaluated. 
 
FloatArray & giveHiddenVarsVector(int i)
 
virtual double computeCreepFunction(double ofAge, double tPrime, GaussPoint *gp, TimeStep *tStep)
Evaluation of the creep compliance function - function useless here. 
 
Abstract base class representing a material status information. 
 
virtual void updateEparModuli(double tPrime, GaussPoint *gp, TimeStep *tStep)
Update of partial moduli of individual chain units. 
 
Class representing vector of real numbers. 
 
Implementation of matrix containing floating point numbers. 
 
virtual void computeStressIndependentStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode)
Computes reduced strain vector in given integration point, generated by internal processes in materia...
 
IRResultType
Type defining the return values of InputRecord reading operations. 
 
This class implements associated Material Status to KelvinChainSolidMaterial, which corresponds to a ...
 
void zero()
Zeroes all coefficients of receiver. 
 
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
 
void times(double s)
Multiplies receiver with scalar. 
 
long ContextMode
Context mode (mask), defining the type of information written/read to/from context. 
 
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record. 
 
Domain * giveDomain() const 
 
virtual double computeSolidifiedVolume(GaussPoint *gp, TimeStep *tStep)=0
Evaluation of the relative volume of the solidified material. 
 
double castingTime
Casting time. 
 
int giveSize() const 
Returns the size of receiver. 
 
the oofem namespace is to define a context or scope in which all oofem names are defined. 
 
bool isNotEmpty() const 
Returns true if receiver is not empty. 
 
const FloatArray & giveStrainVector() const 
Returns the const pointer to receiver's strain vector. 
 
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables. 
 
int nUnits
Number of (Maxwell or Kelvin) units in the rheologic chain. 
 
virtual double computeLambdaMu(GaussPoint *gp, TimeStep *tStep, int Mu)
 
Class representing integration point in finite element program. 
 
Class representing solution step. 
 
void add(const FloatArray &src)
Adds array src to receiver. 
 
void resize(int s)
Resizes receiver towards requested size.