99 switch ( aProperty ) {
215 double us, SCC, SCT, psi2, comp, tol = 0.0, crit = 0.0, nez = 0.0, effstold = 0.0, dezold = 0.0, effst = 0.0, dez = 0.0;
216 double epsult = 0.0, ep1 = -1.0, ep2 = -1.0, ep3 = -1.0, relus, G, ez;
217 int ifsh, i, ifplas, ifupd;
218 FloatArray plasticStrainVector, plasticStrainIncrementVector;
221 FloatArray currentStress, currentStrain, currentEffStrain(6), pVal, ep, pStress, strainIncr, plasticStrain, help, reducedStrain, helpR;
234 totalStrain, tStep, VM_Total);
279 currentEffStrain.at(1) = currentStrain.
at(1) - plasticStrain.
at(1);
280 currentEffStrain.at(2) = currentStrain.
at(2) - plasticStrain.
at(2);
281 currentEffStrain.at(3) = ez - plasticStrain.
at(3);
282 currentEffStrain.at(4) = currentStrain.
at(4) - plasticStrain.
at(4);
283 currentEffStrain.at(5) = currentStrain.
at(5) - plasticStrain.
at(5);
284 currentEffStrain.at(6) = currentStrain.
at(6) - plasticStrain.
at(6);
286 currentEffStrain.at(1) = currentStrain.
at(1);
287 currentEffStrain.at(2) = currentStrain.
at(2);
288 currentEffStrain.at(3) = ez;
289 currentEffStrain.at(4) = currentStrain.
at(4);
290 currentEffStrain.at(5) = currentStrain.
at(5);
291 currentEffStrain.at(6) = currentStrain.
at(6);
298 psi2 = currentEffStrain.at(4) * currentEffStrain.at(4) +
299 currentEffStrain.at(5) * currentEffStrain.at(5);
300 comp = sqrt(currentEffStrain.at(1) * currentEffStrain.at(1) +
301 currentEffStrain.at(2) * currentEffStrain.at(2) +
302 currentEffStrain.at(3) * currentEffStrain.at(3) +
303 currentEffStrain.at(6) * currentEffStrain.at(6) +
307 for ( i = 1; i <= 6; i++ ) {
308 currentStress.
at(i) = 0.;
321 plasticStrainIncrementVector.
subtract(plasticStrainVector);
322 plasticStrainIncrementVector.add(help);
337 if ( ( ez != 0. ) && ( ( sqrt(psi2) / comp ) < this->
give(
c2_SHEARTOL, gp) ) ) {
348 if ( pDir.
at(3, 2) > pDir.
at(3, j) ) {
352 if ( pDir.
at(3, 3) > pDir.
at(3, j) ) {
360 for ( k = 1; k <= 3; k++ ) {
361 swap = pDir.
at(k, 3);
362 pDir.
at(k, 3) = pDir.
at(k, j);
363 pDir.
at(k, j) = swap;
367 pVal.
at(3) = pVal.
at(j);
371 this->
dtp2(gp, pVal, pStress, ep, SCC, SCT, & ifplas);
396 this->
dtp3(gp, pVal, pStress, ep, SCC, SCT, & ifplas);
405 us = ( pDir.
at(3, 1) * pStress.
at(1) * pDir.
at(3, 1) +
406 pDir.
at(3, 2) * pStress.
at(2) * pDir.
at(3, 2) +
407 pDir.
at(3, 3) * pStress.
at(3) * pDir.
at(3, 3) );
430 if ( ( ifplas ) && ( us < 0. ) ) {
434 if ( pVal.
at(1) > pVal.
at(2) ) {
435 if ( pVal.
at(1) > pVal.
at(3) ) {
436 effst = pDir.
at(3, 1);
438 effst = pDir.
at(3, 3);
441 if ( pVal.
at(2) > pVal.
at(3) ) {
442 effst = pDir.
at(3, 2);
444 effst = pDir.
at(3, 3);
448 effst = ( 1. - effst * effst );
450 if ( effst < 1.e-6 ) {
470 if ( dez * dezold < 0. ) {
482 strainIncr.
at(1) = dez;
504 this->
strsoft(gp, epsult, ep, ep1, ep2, ep3, SCC, SCT, ifupd);
511 relus = fabs(us) / crit;
512 if ( ( tol > 0. ) && ( relus > tol ) ) {
516 currentEffStrain.at(1) += pDir.
at(3, 1) * dez * pDir.
at(3, 1);
517 currentEffStrain.at(2) += pDir.
at(3, 2) * dez * pDir.
at(3, 2);
518 currentEffStrain.at(3) += pDir.
at(3, 3) * dez * pDir.
at(3, 3);
519 currentEffStrain.at(4) += pDir.
at(3, 2) * dez * pDir.
at(3, 3);
520 currentEffStrain.at(5) += pDir.
at(3, 1) * dez * pDir.
at(3, 3);
521 currentEffStrain.at(6) += pDir.
at(3, 1) * dez * pDir.
at(3, 2);
525 plasticStrain.
at(1) += ( pDir.
at(1, 1) * ep1 * pDir.
at(1, 1) +
526 pDir.
at(1, 2) * ep2 * pDir.
at(1, 2) +
527 pDir.
at(1, 3) * ep3 * pDir.
at(1, 3) );
528 plasticStrain.
at(2) += ( pDir.
at(2, 1) * ep1 * pDir.
at(2, 1) +
529 pDir.
at(2, 2) * ep2 * pDir.
at(2, 2) +
530 pDir.
at(2, 3) * ep3 * pDir.
at(2, 3) );
531 plasticStrain.
at(3) += ( pDir.
at(3, 1) * ep1 * pDir.
at(3, 1) +
532 pDir.
at(3, 2) * ep2 * pDir.
at(3, 2) +
533 pDir.
at(3, 3) * ep3 * pDir.
at(3, 3) );
534 plasticStrain.
at(4) += 2. * ( pDir.
at(2, 1) * ep1 * pDir.
at(3, 1) +
535 pDir.
at(2, 2) * ep2 * pDir.
at(3, 2) +
536 pDir.
at(2, 3) * ep3 * pDir.
at(3, 3) );
537 plasticStrain.
at(5) += 2. * ( pDir.
at(1, 1) * ep1 * pDir.
at(3, 1) +
538 pDir.
at(1, 2) * ep2 * pDir.
at(3, 2) +
539 pDir.
at(1, 3) * ep3 * pDir.
at(3, 3) );
540 plasticStrain.
at(6) += 2. * ( pDir.
at(1, 1) * ep1 * pDir.
at(2, 1) +
541 pDir.
at(1, 2) * ep2 * pDir.
at(2, 2) +
542 pDir.
at(1, 3) * ep3 * pDir.
at(2, 3) );
561 plasticStrain.
at(1) += ( pDir.
at(1, 1) * ep1 * pDir.
at(1, 1) +
562 pDir.
at(1, 2) * ep2 * pDir.
at(1, 2) );
563 plasticStrain.
at(2) += ( pDir.
at(2, 1) * ep1 * pDir.
at(2, 1) +
564 pDir.
at(2, 2) * ep2 * pDir.
at(2, 2) );
565 plasticStrain.
at(6) += 2. * ( pDir.
at(1, 1) * ep1 * pDir.
at(2, 1) +
566 pDir.
at(1, 2) * ep2 * pDir.
at(2, 2) );
571 plasticStrain.
at(1) += ( pDir.
at(1, 1) * ep1 * pDir.
at(1, 1) +
572 pDir.
at(1, 2) * ep2 * pDir.
at(1, 2) +
573 pDir.
at(1, 3) * ep3 * pDir.
at(1, 3) );
574 plasticStrain.
at(2) += ( pDir.
at(2, 1) * ep1 * pDir.
at(2, 1) +
575 pDir.
at(2, 2) * ep2 * pDir.
at(2, 2) +
576 pDir.
at(2, 3) * ep3 * pDir.
at(2, 3) );
577 plasticStrain.
at(3) += ( pDir.
at(3, 1) * ep1 * pDir.
at(3, 1) +
578 pDir.
at(3, 2) * ep2 * pDir.
at(3, 2) +
579 pDir.
at(3, 3) * ep3 * pDir.
at(3, 3) );
580 plasticStrain.
at(4) += 2. * ( pDir.
at(2, 1) * ep1 * pDir.
at(3, 1) +
581 pDir.
at(2, 2) * ep2 * pDir.
at(3, 2) +
582 pDir.
at(2, 3) * ep3 * pDir.
at(3, 3) );
583 plasticStrain.
at(5) += 2. * ( pDir.
at(1, 1) * ep1 * pDir.
at(3, 1) +
584 pDir.
at(1, 2) * ep2 * pDir.
at(3, 2) +
585 pDir.
at(1, 3) * ep3 * pDir.
at(3, 3) );
586 plasticStrain.
at(6) += 2. * ( pDir.
at(1, 1) * ep1 * pDir.
at(2, 1) +
587 pDir.
at(1, 2) * ep2 * pDir.
at(2, 2) +
588 pDir.
at(1, 3) * ep3 * pDir.
at(2, 3) );
601 currentStress.
at(1) = ( pDir.
at(1, 1) * pStress.
at(1) * pDir.
at(1, 1) +
602 pDir.
at(1, 2) * pStress.
at(2) * pDir.
at(1, 2) );
603 currentStress.
at(2) = ( pDir.
at(2, 1) * pStress.
at(1) * pDir.
at(2, 1) +
604 pDir.
at(2, 2) * pStress.
at(2) * pDir.
at(2, 2) );
605 currentStress.
at(3) = 0.;
606 currentStress.
at(4) = currentStrain.
at(4) * G;
607 currentStress.
at(5) = currentStrain.
at(5) * G;
608 currentStress.
at(6) = ( pDir.
at(1, 1) * pStress.
at(1) * pDir.
at(2, 1) +
609 pDir.
at(1, 2) * pStress.
at(2) * pDir.
at(2, 2) );
611 currentStress.
at(1) = ( pDir.
at(1, 1) * pStress.
at(1) * pDir.
at(1, 1) +
612 pDir.
at(1, 2) * pStress.
at(2) * pDir.
at(1, 2) +
613 pDir.
at(1, 3) * pStress.
at(3) * pDir.
at(1, 3) );
614 currentStress.
at(2) = ( pDir.
at(2, 1) * pStress.
at(1) * pDir.
at(2, 1) +
615 pDir.
at(2, 2) * pStress.
at(2) * pDir.
at(2, 2) +
616 pDir.
at(2, 3) * pStress.
at(3) * pDir.
at(2, 3) );
617 currentStress.
at(3) = us;
618 currentStress.
at(4) = ( pDir.
at(2, 1) * pStress.
at(1) * pDir.
at(3, 1) +
619 pDir.
at(2, 2) * pStress.
at(2) * pDir.
at(3, 2) +
620 pDir.
at(2, 3) * pStress.
at(3) * pDir.
at(3, 3) );
621 currentStress.
at(5) = ( pDir.
at(1, 1) * pStress.
at(1) * pDir.
at(3, 1) +
622 pDir.
at(1, 2) * pStress.
at(2) * pDir.
at(3, 2) +
623 pDir.
at(1, 3) * pStress.
at(3) * pDir.
at(3, 3) );
624 currentStress.
at(6) = ( pDir.
at(1, 1) * pStress.
at(1) * pDir.
at(2, 1) +
625 pDir.
at(1, 2) * pStress.
at(2) * pDir.
at(2, 2) +
626 pDir.
at(1, 3) * pStress.
at(3) * pDir.
at(2, 3) );
642 plasticStrainIncrementVector.
subtract(plasticStrainVector);
643 plasticStrainIncrementVector.add(help);
655 double SCC,
double SCT,
int *ifplas)
681 int i, ii = 0, j, k, jj = 0, kk = 0;
682 double yy, ey, e0, yy1, yy2, s0, sci = 0.0, scj = 0.0, sck = 0.0;
700 e0 = this->
give(
c2_E, gp) / ( 1. + yy ) / ( 1. - yy - yy );
704 if ( this->
give(
c2_E, gp) < 1.e-6 ) {
705 for ( i = 1; i <= 3; i++ ) {
713 if ( this->
give(
c2_n, gp) >= 0.01 ) {
714 s.
at(1) = e0 * ( yy1 * e.
at(1) + yy * ( e.
at(2) + e.
at(3) ) );
715 s.
at(2) = e0 * ( yy1 * e.
at(2) + yy * ( e.
at(1) + e.
at(3) ) );
716 s.
at(3) = e0 * ( yy1 * e.
at(3) + yy * ( e.
at(2) + e.
at(1) ) );
721 for ( i = 1; i <= 3; i++ ) {
722 if ( ( s.
at(i) - SCT - s0 ) > 0. ) {
728 if ( ( SCC - s.
at(i) - s0 ) > 0. ) {
754 s.
at(j) = ( yy * sci + ey / yy2 * ( e.
at(j) + yy * e.
at(k) ) ) / yy1;
755 s.
at(k) = ( yy * sci + ey / yy2 * ( e.
at(k) + yy * e.
at(j) ) ) / yy1;
760 if ( ( s.
at(j) - SCT - s0 ) > 0. ) {
767 if ( ( SCC - s.
at(j) - s0 ) > 0. ) {
774 if ( ( s.
at(k) - SCT - s0 ) > 0. ) {
781 if ( ( SCC - s.
at(k) - s0 ) > 0. ) {
791 ep.
at(i) = e.
at(i) - sci / yy1 / e0 + yy / yy1 * ( e.
at(j) + e.
at(k) );
804 s.
at(k) = yy * ( sci + scj ) + ey *e.
at(k);
808 if ( ( s.
at(k) - SCT ) > 0. ) {
811 if ( ( SCC - s.
at(k) ) > 0. ) {
817 ep.
at(i) = e.
at(i) + yy *e.
at(k) + yy2 / ey * ( yy * scj - yy1 * sci );
818 ep.
at(j) = e.
at(j) + yy *e.
at(k) + yy2 / ey * ( yy * sci - yy1 * scj );
828 ep.
at(i) = e.
at(i) - ( sci - yy * ( scj + sck ) ) / ey;
829 ep.
at(j) = e.
at(j) - ( scj - yy * ( sck + sci ) ) / ey;
830 ep.
at(k) = e.
at(k) - ( sck - yy * ( sci + scj ) ) / ey;
836 for ( i = 1; i <= 3; i++ ) {
839 s.
at(i) = e.
at(i) * ey;
840 if ( s.
at(i) > SCT ) {
844 ep.
at(i) -= sci / ey;
846 if ( s.
at(i) < SCC ) {
849 ep.
at(i) -= sci / ey;
858 double SCC,
double SCT,
int *ifplas)
885 double yy, ey, e0, so, scj = 0.0, sck = 0.0, sci = 0.0;
907 s.
at(1) = s.
at(2) = 0.;
908 ep.
at(1) = ep.
at(2) = 0.;
913 e0 = ey / ( 1. - yy * yy );
915 s.
at(1) = e0 * ( e.
at(1) + yy * e.
at(2) );
916 s.
at(2) = e0 * ( e.
at(2) + yy * e.
at(1) );
922 for ( j = 1; j <= 2; j++ ) {
923 if ( ( s.
at(j) - SCT - so ) > 0. ) {
929 if ( ( SCC - s.
at(j) - so ) > 0. ) {
952 s.
at(k) = ey * e.
at(k) + scj * yy;
956 if ( ( s.
at(k) - SCT ) > 0. ) {
959 if ( ( SCC - s.
at(k) ) > 0. ) {
965 ep.
at(j) = e.
at(j) + yy *e.
at(k) - scj / e0;
975 ep.
at(j) = e.
at(j) - ( s.
at(j) - yy * s.
at(k) ) / ey;
976 ep.
at(k) = e.
at(k) - ( s.
at(k) - yy * s.
at(j) ) / ey;
982 for ( i = 1; i <= 2; i++ ) {
985 s.
at(i) = e.
at(i) * ey;
986 if ( s.
at(i) > SCT ) {
994 ep.
at(i) = e.
at(i) - sci / ey;
1006 double SCC,
double SCT,
int &ifupd)
1044 double eop, eopr, dep, d, eep, eepr;
1050 eop =
max(ep.
at(1), 0.) +
max(ep.
at(2), 0.) +
1069 if ( eop > epsult ) {
1093 ep1 =
min(ep.
at(1), 0.);
1094 ep2 =
min(ep.
at(2), 0.);
1095 ep3 =
min(ep.
at(3), 0.);
1096 dep = ep1 + ep2 + ep3;
1114 d = 1.5 * ( ep1 * ep1 + ep2 * ep2 + ep3 * ep3 ) - 0.5 * dep * dep;
1202 double dep, srf, dez, ovs, s, dt;
1204 dez = strainIncrement.
at(1);
1209 if ( ( ovs ) > 0. ) {
1211 if ( ( dez * srf ) > 0. ) {
1220 s = srf + this->
give(
stirr_E, gp) * ( dez - dep );
double SCTM
Current tension strength.
static int giveSizeOfVoigtSymVector(MaterialMode mmode)
Returns the size of symmetric part of a reduced stress/strain vector according to given mode...
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
MaterialMode giveMaterialMode()
Returns corresponding material mode of receiver.
double SHEARTOL
Threshold value of the relative shear deformation (psi^2/eef) at which shear is considered in layers...
void subtract(const FloatArray &src)
Subtracts array src to receiver.
int IFAD
Determines if state variables should be updated or not (>0 updates).
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
void letTempStrainVectorBe(const FloatArray &v)
Assigns tempStrainVector to given vector v.
Concrete2MaterialStatus(int n, Domain *d, GaussPoint *g)
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
Returns material status of receiver in given integration point.
void updateStirrups(GaussPoint *gp, FloatArray &strainIncrement, TimeStep *tStep)
GaussPoint * gp
Associated integration point.
For computing principal strains from engineering strains.
void dtp2(GaussPoint *gp, FloatArray &e, FloatArray &s, FloatArray &ep, double SCC, double SCT, int *ifplas)
double & at(int aKey)
Returns the value of the pair which key is aKey.
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
contextIOResultType storeYourself(DataStream &stream) const
double & at(int i)
Coefficient access function.
int max(int i, int j)
Returns bigger value form two given decimals.
double & giveTempMaxVolPlasticStrain()
This class implements a structural material status information.
double SEZ
Current strain in transverse (z) direction.
bool includes(int aKey)
Checks if dictionary includes given key.
FloatArray plasticStrainVector
const FloatArray & givePlasticStrainIncrementVector() const
virtual void givePlateLayerStiffMtrx(FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep)
Method for computing 2d plate layer stiffness matrix of receiver.
double SCCM
Current pressure strength.
Dictionary propertyDictionary
Property dictionary.
#define _IFT_Concrete2_eopp
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
void strsoft(GaussPoint *gp, double epsult, FloatArray &ep, double &ep1, double &ep2, double &ep3, double SCC, double SCT, int &ifupd)
#define _IFT_Concrete2_stirr_tol
#define _IFT_Concrete2_stirr_a
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...
double SCCT
Tension strength.
double SCCC
Pressure strength.
static void computePrincipalValDir(FloatArray &answer, FloatMatrix &dir, const FloatArray &s, stressStrainPrincMode mode)
Computes principal values and directions of stress or strain vector.
virtual int read(int *data, int count)=0
Reads count integer values into array pointed by data.
MatResponseMode
Describes the character of characteristic material matrix.
virtual MaterialStatus * CreateStatus(GaussPoint *gp) const
Creates new copy of associated status and inserts it into given integration point.
#define _IFT_Concrete2_stirr_ft
#define _IFT_Concrete2_stirr_e
static void giveFullSymVectorForm(FloatArray &answer, const FloatArray &vec, MaterialMode matMode)
Converts the reduced unsymmetric Voigt vector (2nd order tensor) to full form.
double giveTimeIncrement()
Returns solution step associated time increment.
#define _IFT_Concrete2_is_plastic_flow
#define _IFT_Concrete2_scct
virtual int write(const int *data, int count)=0
Writes count integer values from array pointed by data.
double EPP
Threshold eff. plastic strain for softening in compress.
#define _IFT_Concrete2_epp
virtual double give(int aProperty, GaussPoint *gp)
Returns the value of material property 'aProperty'.
double & giveTempCurrentTensionStrength()
LinearElasticMaterial * linearElasticMaterial
static void giveReducedSymVectorForm(FloatArray &answer, const FloatArray &vec, MaterialMode matMode)
Converts the full unsymmetric Voigt vector (2nd order tensor) to reduced form.
This class implements an isotropic linear elastic material in a finite element problem.
int iperm(int val, int rank)
Returns iperm of val, in specific rank.
double EPU
Ultimate eff. pl. strain.
FloatArray plasticStrainIncrementVector
#define _IFT_Concrete2_stirr_lambda
double & giveTempMaxEffPlasticStrain()
contextIOResultType restoreYourself(DataStream &stream)
double & giveTempCurrentPressureStrength()
Concrete2(int n, Domain *d)
#define _IFT_Concrete2_ifad
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
double at(int i, int j) const
Coefficient access function.
double E0PM
Max. vol. plastic strain.
virtual void giveRealStressVector_PlateLayer(FloatArray &answer, GaussPoint *gp, const FloatArray &, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
#define _IFT_Concrete2_sccc
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
virtual void givePlateLayerStiffMtrx(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
Method for computing 2d plate layer stiffness matrix of receiver.
#define c2_IS_PLASTIC_FLOW
const FloatArray & givePlasticStrainVector() const
Abstract base class representing a material status information.
Class representing vector of real numbers.
#define _IFT_Concrete2_eopu
Implementation of matrix containing floating point numbers.
void letPlasticStrainIncrementVectorBe(FloatArray v)
double SRF
current stress in stirrups.
IRResultType
Type defining the return values of InputRecord reading operations.
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
double & giveTempCurrentStrainInZDir()
double EOPU
Ultimate vol. pl. strain.
void letTempStressVectorBe(const FloatArray &v)
Assigns tempStressVector to given vector v.
const FloatArray & giveStressVector() const
Returns the const pointer to receiver's stress vector.
#define _IFT_Concrete2_sheartol
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
#define _IFT_Concrete2_epu
virtual ~Concrete2MaterialStatus()
void zero()
Zeroes all coefficients of receiver.
double & giveCurrentPressureStrength()
void dtp3(GaussPoint *gp, FloatArray &e, FloatArray &s, FloatArray &ep, double SCC, double SCT, int *ifplas)
double & giveTempCurrentStressInStirrups()
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
double EOPP
Threshold volumetric plastic strain for soft. in tension.
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
Domain * giveDomain() const
int min(int i, int j)
Returns smaller value from two given decimals.
REGISTER_Material(DummyMaterial)
This class implements associated Material Status to Concrete2Material.
int giveSize() const
Returns the size of receiver.
double & giveCurrentTensionStrength()
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
virtual void initTempStatus(GaussPoint *gp)
Initializes temporary variables stored in integration point status at the beginning of new time step...
#define _IFT_Concrete2_stirr_eref
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual double give(int, GaussPoint *gp)
Returns the value of material property 'aProperty'.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
double EPM
Max. eff. plastic strain.
Class representing integration point in finite element program.
Class representing solution step.
int IS_PLASTIC_FLOW
Indicates that plastic flow (not deformation theory) is used in pressure.
void resize(int s)
Resizes receiver towards requested size.