94 double eksi, nxz, nyz, nxy, nzx, nzy, nyx;
100 nyz = nzy = activeNu.
at(1);
101 nxz = nzx = activeNu.
at(2);
102 nxy = nyx = activeNu.
at(3);
104 eksi = 1. - ( nxy * nyx + nyz * nzy + nzx * nxz ) - ( nxy * nyz * nzx + nyx * nzy * nxz );
109 answer.
at(1, 1) = activeE.
at(1) * ( 1. - nyz * nzy ) / eksi;
110 answer.
at(1, 2) = activeE.
at(2) * ( nxy + nxz * nzy ) / eksi;
111 answer.
at(1, 3) = activeE.
at(3) * ( nxz + nyz * nxy ) / eksi;
112 answer.
at(2, 2) = activeE.
at(2) * ( 1. - nxz * nzx ) / eksi;
113 answer.
at(2, 3) = activeE.
at(3) * ( nyz + nyx * nxz ) / eksi;
114 answer.
at(3, 3) = activeE.
at(3) * ( 1. - nyx * nxy ) / eksi;
117 for (
int i = 1; i < 4; i++ ) {
118 for (
int j = 1; j < i; j++ ) {
119 answer.
at(i, j) = answer.
at(j, i);
123 answer.
at(4, 4) = activeG.
at(1);
124 answer.
at(5, 5) = activeG.
at(2);
125 answer.
at(6, 6) = activeG.
at(3);
148 answer.
add(deltaStress);
void letTempStrainVectorBe(const FloatArray &v)
Assigns tempStrainVector to given vector v.
#define _IFT_SimpleVitrificationMaterial_G
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
Returns material status of receiver in given integration point.
#define _IFT_SimpleVitrificationMaterial_vitrificationTime
Describes the time where the material switches response.
Domain * domain
Link to domain object, useful for communicating with other FEM components.
virtual void giveThermalDilatationVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
Returns a vector of coefficients of thermal dilatation in direction of each material principal (local...
double & at(int i)
Coefficient access function.
virtual int checkConsistency()
Allows programmer to test some internal data, before computation begins.
This class implements a structural material status information.
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 ...
virtual void giveRealStressVector_3d(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
#define _IFT_SimpleVitrificationMaterial_alpha
void giveStressDependentPartOfStrainVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrainVector, TimeStep *tStep, ValueModeType mode)
Method for subtracting from reduced space strain vector its stress-independent parts (caused by tempe...
MatResponseMode
Describes the character of characteristic material matrix.
void beDifferenceOf(const FloatArray &a, const FloatArray &b)
Sets receiver to be a - b.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual MaterialStatus * CreateStatus(GaussPoint *gp) const
Creates new copy of associated status and inserts it into given integration point.
#define _IFT_SimpleVitrificationMaterial_nu_r
double vitrTime
Vitrification time (when equal or larger than this time the material changes response).
FloatArray E_r
Material parameters for the rubbery part of the model (before vitrification).
#define _IFT_SimpleVitrificationMaterial_nu
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix and anArray.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
double at(int i, int j) const
Coefficient access function.
double giveIntrinsicTime()
Returns intrinsic time, e.g. time in which constitutive model is evaluated.
#define _IFT_SimpleVitrificationMaterial_E_r
Abstract base class representing a material status information.
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
void letTempStressVectorBe(const FloatArray &v)
Assigns tempStressVector to given vector v.
const FloatArray & giveStressVector() const
Returns the const pointer to receiver's stress vector.
virtual ~SimpleVitrificationMaterial()
Destructor.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
FloatArray E
Material parameters for the glassy part of the model (after vitrification).
#define _IFT_SimpleVitrificationMaterial_G_r
void zero()
Zeroes all coefficient of receiver.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
#define _IFT_SimpleVitrificationMaterial_alpha_r
REGISTER_Material(DummyMaterial)
the oofem namespace is to define a context or scope in which all oofem names are defined.
const FloatArray & giveStrainVector() const
Returns the const pointer to receiver's strain vector.
#define _IFT_SimpleVitrificationMaterial_E
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.