OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
b3mat.C
Go to the documentation of this file.
1 /*
2  *
3  * ##### ##### ###### ###### ### ###
4  * ## ## ## ## ## ## ## ### ##
5  * ## ## ## ## #### #### ## # ##
6  * ## ## ## ## ## ## ## ##
7  * ## ## ## ## ## ## ## ##
8  * ##### ##### ## ###### ## ##
9  *
10  *
11  * OOFEM : Object Oriented Finite Element Code
12  *
13  * Copyright (C) 1993 - 2013 Borek Patzak
14  *
15  *
16  *
17  * Czech Technical University, Faculty of Civil Engineering,
18  * Department of Structural Mechanics, 166 29 Prague, Czech Republic
19  *
20  * This library is free software; you can redistribute it and/or
21  * modify it under the terms of the GNU Lesser General Public
22  * License as published by the Free Software Foundation; either
23  * version 2.1 of the License, or (at your option) any later version.
24  *
25  * This program is distributed in the hope that it will be useful,
26  * but WITHOUT ANY WARRANTY; without even the implied warranty of
27  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
28  * Lesser General Public License for more details.
29  *
30  * You should have received a copy of the GNU Lesser General Public
31  * License along with this library; if not, write to the Free Software
32  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
33  */
34 
35 #include "b3mat.h"
36 #include "mathfem.h"
37 #include "gausspoint.h"
38 #include "timestep.h"
39 #include "classfactory.h"
40 #include "engngm.h"
41 
42 namespace oofem {
43 REGISTER_Material(B3Material);
44 
47 {
48  IRResultType result; // Required by IR_GIVE_FIELD macro
49 
51  if ( result != IRRT_OK ) return result;
52 
53  //
54  // NOTE
55  //
56  // this material model is unit dependent!
57  // units must be in Mpa, m, MN.
58  //
59  //
60  double fc = 0.0, c = 0.0, wc = 0.0, ac = 0.0, alpha1 = 0.0, alpha2 = 0.0;
61 
62  int mode = 0;
64  if ( mode == 0 ) { // default, determine raw params q1,..,q5 from composition
65  IR_GIVE_FIELD(ir, fc, _IFT_B3Material_fc); // 28-day standard cylinder compression strength in MPa
66  IR_GIVE_FIELD(ir, c, _IFT_B3Material_cc); // cement content of concrete in kg m^-3.
67  IR_GIVE_FIELD(ir, wc, _IFT_B3Material_wc); // ratio (by weight) of water to cementitious material
68  IR_GIVE_FIELD(ir, ac, _IFT_B3Material_ac); // ratio (by weight) of aggregate to cement
69  IR_GIVE_FIELD(ir, t0, _IFT_B3Material_t0); // age when drying begins (in days)
70  } else { // read raw Basic creep parameters
75  }
76 
77  // read shrinkage mode
78  int shm = 0;
80  this->shMode = ( b3ShModeType ) shm;
81 
82  if ( this->shMode == B3_PointShrinkage ) {
83  // read additional shrinkage params required
88  // read sorption isotherm data
92  } else if ( this->shMode == B3_AverageShrinkage ) {
93  if ( mode == 0 ) { // default mode
94  IR_GIVE_FIELD(ir, alpha1, _IFT_B3Material_alpha1); // shrinkage parameter
95  IR_GIVE_FIELD(ir, alpha2, _IFT_B3Material_alpha2); // shrinkage parameter
96  IR_GIVE_FIELD(ir, ks, _IFT_B3Material_ks); //cross section shape factor
97  /*
98  * use ks = 1.0 for an infinite slab
99  * = 1.15 for an infinite cylinder
100  * = 1.25 for an infinite square prism
101  * = 1.30 for a sphere
102  * = 1.55 for a cube
103  */
104  IR_GIVE_FIELD(ir, hum, _IFT_B3Material_hum); // relative humidity of the environment
105  IR_GIVE_FIELD(ir, vs, _IFT_B3Material_vs); // volume to surface ratio (in m)
106  } else { // read raw params
107  IR_GIVE_FIELD(ir, kt, _IFT_B3Material_kt); // shrinkage parameter
108  IR_GIVE_FIELD(ir, EpsSinf, _IFT_B3Material_EpsSinf); // shrinkage parameter
109  IR_GIVE_FIELD(ir, q5, _IFT_B3Material_q5); // shrinkage parameter
110  IR_GIVE_FIELD(ir, vs, _IFT_B3Material_vs); // volume to surface ratio (in m)
111  IR_GIVE_FIELD(ir, ks, _IFT_B3Material_ks); //cross section shape factor
112  IR_GIVE_FIELD(ir, hum, _IFT_B3Material_hum); // relative humidity of the environment
113  }
114  }
115 
116  w = wc * c;
117  E28 = 4734. * sqrt(fc); // or 4733. ?
118  if ( mode == 0 ) {
119  this->predictParametersFrom(fc, c, wc, ac, t0, alpha1, alpha2);
120  }
121 
122  return IRRT_OK;
123 }
124 
125 void
126 B3Material :: predictParametersFrom(double fc, double c, double wc, double ac,
127  double t0, double alpha1, double alpha2)
128 {
129  /*
130  * Prediction of model parameters - estimation from concrete composition
131  * and strength
132  *
133  * fc - 28-day standard cylinder compression strength in MPa
134  * c - cement content of concrete in kg m^-3.
135  * wc - ratio (by weight) of water to cementitious material
136  * ac - ratio (by weight) of agregate to cement
137  * t0 - age when drying begins (in days)
138  * alpha1, alpha2 - shrinkage parameters
139  *
140  * The prediction of the material parameters of the present model
141  * is restricted to Portland cement concretes with the following
142  * parameter ranges:
143  *
144  * 2500 <= fc <= 10000 [psi] (psi = 6895 Pa)
145  * 10 <= c <= 45 [lb ft-3] (lb ft-3 = 16.03 kg m-3)
146  * 0.3 <= wc <= 0.85
147  * 2.5 <= ac <= 13.5
148  *
149  *
150  * alpha1 = 1.0 for type I cement;
151  * = 0.85 for type II cement;
152  * = 1.1 for type III cement;
153  *
154  * alpha2 = 0.75 for steam-cured specimens;
155  * = 1.2 for specimens sealed during curing;
156  * = 1.0 for specimens cured in water or 100% relative humidity.
157  *
158  */
159 
160  // Basic creep parameters
161 
162  // q1 = 0.6e6 / E28;
163  q1 = 127 * pow(fc, -0.5);
164  q2 = 185.4 * pow(c, 0.5) * pow(fc, -0.9);
165  q3 = 0.29 * pow(wc, 4.) * q2;
166  q4 = 20.3 * pow(ac, -0.7);
167 
168  // Shrinkage
169 
170  if ( this->shMode == B3_AverageShrinkage ) {
171  // the exact value converted from US units would be 85220
172  // but this is the SI formula presented in Inelastic Analysis
173  kt = 85000 * pow(t0, -0.08) * pow(fc, -0.25);
174  EpsSinf = alpha1 * alpha2 * ( 1.9e-2 * pow(w, 2.1) * pow(fc, -0.28) + 270. );
175 
176  // Creep at drying
177 
178  q5 = 7.57e5 * ( 1. / fc ) * pow(EpsSinf, -0.6);
179 
180  OOFEM_LOG_DEBUG("B3mat[%d]: estimated params: q1=%lf q2=%lf q3=%lf q4=%lf q5=%lf kt=%lf EpsSinf=%lf\n",
181  this->number, q1, q2, q3, q4, q5, kt, EpsSinf);
182  } else {
183  OOFEM_LOG_DEBUG("B3mat[%d]: estimated params: q1=%lf q2=%lf q3=%lf q4=%lf\n",
184  this->number, q1, q2, q3, q4);
185  }
186 }
187 
188 
189 double
190 B3Material :: computeCreepFunction(double t, double t_prime, GaussPoint *gp, TimeStep *tStep)
191 {
192  // computes the value of creep function at time t
193  // when load is acting from time t_prime
194  // t-t_prime = duration of loading
195 
196  double Qf, Z, r, Q, C0, TauSh, St1, St2, H1, H2, Cd;
197  double n, m;
198 
199  m = 0.5;
200  n = 0.1;
201 
202  // basic creep
203 
204  Qf = 1. / ( 0.086 * pow(t_prime, 2. / 9.) + 1.21 * pow(t_prime, 4. / 9.) );
205  Z = pow(t_prime, -m) * log( 1. + pow(t - t_prime, n) );
206  r = 1.7 * pow(t_prime, 0.12) + 8.0;
207  Q = Qf * pow( ( 1. + pow( ( Qf / Z ), r ) ), -1. / r );
208 
209  C0 = q2 * Q + q3 *log( 1. + pow ( t - t_prime, n ) ) + q4 *log(t / t_prime);
210 
211 
212  if ( this->shMode == B3_AverageShrinkage ) {
213  // Aditional creep due to drying
214 
215  TauSh = kt * pow(ks * 2.0 * vs, 2.);
216  if ( ( t - t0 ) >= 0 ) {
217  St1 = tanh( pow( ( t - t0 ) / TauSh, 1. / 2. ) );
218  } else {
219  St1 = 0.0;
220  }
221 
222  if ( ( t_prime - t0 ) >= 0 ) {
223  St2 = tanh( pow( ( t_prime - t0 ) / TauSh, 1. / 2. ) );
224  } else {
225  St2 = 0.0;
226  }
227 
228  H1 = 1. - ( 1. - hum ) * St1;
229  H2 = 1. - ( 1. - hum ) * St2;
230  Cd = q5 * pow( ( exp(-8.0 * H1) - exp(-8.0 * H2) ), 0.5 );
231  } else {
232  Cd = 0.0;
233  }
234 
235  return 1.e-6 * ( q1 + C0 + Cd );
236 }
237 
238 
239 
240 void
242  GaussPoint *gp,
243  TimeStep *tStep,
244  ValueModeType mode)
245 {
246  FloatArray prevAnswer;
247 
248  if ( this->shMode == B3_NoShrinkage ) {
250  answer.zero();
251  return;
252  }
253 
254  if ( ( mode != VM_Total ) && ( mode != VM_Incremental ) ) {
255  OOFEM_ERROR("unsupported mode");
256  }
257 
258  if ( this->shMode == B3_AverageShrinkage ) {
259  this->computeTotalAverageShrinkageStrainVector(answer, gp, tStep);
260 
261  if ( ( mode == VM_Incremental ) && ( !tStep->isTheFirstStep() ) ) {
262  this->computeTotalAverageShrinkageStrainVector( prevAnswer, gp, tStep->givePreviousStep() );
263  answer.subtract(prevAnswer);
264  }
265  } else {
266  this->computeShrinkageStrainVector(answer, gp, tStep, mode);
267  }
268 }
269 
270 void
272 {
273  /*
274  * returns average shrinkage strain vector of cross-section at drying
275  */
276  double TauSh, St, kh, help, E607, Et0Tau, EpsShInf, EpsSh;
277  double time = relMatAge + tStep->giveTargetTime() / timeFactor;
278  int size;
279  FloatArray fullAnswer;
280  MaterialMode mode = gp->giveMaterialMode();
281 
282  if ( ( mode == _3dShell ) || ( mode == _3dBeam ) || ( mode == _2dPlate ) || ( mode == _2dBeam ) ) {
283  size = 12;
284  } else {
285  size = 6;
286  }
287 
288  fullAnswer.resize(size);
289  fullAnswer.zero();
290 
291  // size dependence
292  TauSh = kt * pow(ks * 2.0 * vs, 2.);
293  // time curve
294  St = tanh( pow( ( time - t0 ) / TauSh, 1. / 2. ) );
295  // humidity dependence
296  if ( hum <= 0.98 ) {
297  kh = 1. - pow(hum, 3);
298  } else if ( hum == 1 ) {
299  kh = -0.2; // swelling in water
300  } else {
301  // linear interpolation for 0.98 <= h <= 1.
302  help = 1. - pow(hum, 3);
303  kh = help + ( -0.2 - help ) / ( 1. - 0.98 ) * ( hum - 0.98 );
304  }
305 
306  // time dependence of ultimate shrinkage
307  E607 = E28 * pow(607 / ( 4. + 0.85 * 607 ), 0.5);
308  Et0Tau = E28 * pow( ( t0 + TauSh ) / ( 4. + 0.85 * ( t0 + TauSh ) ), 0.5 );
309  EpsShInf = EpsSinf * E607 / Et0Tau;
310  // mean shrinkage in the cross section:
311  EpsSh = -EpsShInf * kh * St;
312 
313  fullAnswer.at(1) = fullAnswer.at(2) = fullAnswer.at(3) = EpsSh * 1.e-6;
314 
316 }
317 
318 void
320 {
321  // additional material parameters required:
322  // es0 - final shrinkage at material point
323  // r - coefficient
324  // rprime - coefficient
325  // at - coeff relating stress-induced thermal strain and shrinkage
326  double sv, sn, et0, et, wrate = 0.0, trate = 0.0, h1;
327  double time = relMatAge + tStep->giveTargetTime() / timeFactor;
328  int err, tflag = 0, wflag = 0;
329  MaxwellChainMaterialStatus *status = static_cast< MaxwellChainMaterialStatus * >( this->giveStatus(gp) );
330  int size;
331  FloatArray fullAnswer;
332  MaterialMode mmode = gp->giveMaterialMode();
333 
334  if ( ( mmode == _3dShell ) || ( mmode == _3dBeam ) || ( mmode == _2dPlate ) || ( mmode == _2dBeam ) ) {
335  size = 12;
336  } else {
337  size = 6;
338  }
339 
340  fullAnswer.resize(size);
341  fullAnswer.zero();
342 
343 
344  /* ask for humidity and temperature from external sources, if provided */
346  FieldPtr tf;
347  FloatArray gcoords, et2, ei2, stressVector, fullStressVector;
348 
349  if ( ( tf = fm->giveField(FT_Temperature) ) ) {
350  // temperature field registered
352  if ( ( err = tf->evaluateAt(et2, gcoords, VM_Incremental, tStep) ) ) {
353  OOFEM_ERROR("tf->evaluateAt failed, error value %d", err);
354  }
355 
356  trate = et2.at(1);
357  tflag = 1;
358  }
359 
360  if ( ( tf = fm->giveField(FT_HumidityConcentration) ) ) {
361  // temperature field registered
363  if ( ( err = tf->evaluateAt(et2, gcoords, VM_Total, tStep) ) ) {
364  OOFEM_ERROR("tf->evaluateAt failed, error value %d", err);
365  }
366 
367  if ( ( err = tf->evaluateAt(ei2, gcoords, VM_Incremental, tStep) ) ) {
368  OOFEM_ERROR("tf->evaluateAt failed, error value %d", err);
369  }
370 
371  // convert water mass to relative humidity
372  wrate = this->inverse_sorption_isotherm( et2.at(1) ) - this->inverse_sorption_isotherm( et2.at(1) - ei2.at(1) );
373  wflag = 1;
374  }
375 
376  if ( ( tflag == 0 ) || ( wflag == 0 ) ) {
377  OOFEM_ERROR("external fields not found");
378  }
379 
380  // if ( status->giveStressVector().giveSize() ) {
381  // stressVector = status->giveStressVector();
382  if ( status->giveViscoelasticStressVector().giveSize() ) {
383  stressVector = status->giveViscoelasticStressVector();
384  } else {
386  stressVector.zero();
387  }
388 
389  StructuralMaterial :: giveFullSymVectorForm( fullStressVector, stressVector, gp->giveMaterialMode() );
390  // compute volumetric stress
391  sv = 0.0;
392  for ( int i = 1; i <= 3; i++ ) {
393  sv += stressVector.at(i);
394  }
395 
396  et = 1. / this->computeCreepFunction(time + 0.01, time, gp, tStep);
397  et0 = 1. / this->computeCreepFunction(t0 + 0.01, t0, gp, tStep);
398 
399  h1 = es0 * ( et0 / et );
400  sn = sgn(wrate + at * trate);
401  // compute increment of shrinkage strain
402  fullAnswer.at(1) = h1 * ( 1.0 + sn * ( r * fullStressVector.at(1) + rprime * sv ) ) * ( wrate + at * trate );
403  fullAnswer.at(2) = h1 * ( 1.0 + sn * ( r * fullStressVector.at(2) + rprime * sv ) ) * ( wrate + at * trate );
404  fullAnswer.at(3) = h1 * ( 1.0 + sn * ( r * fullStressVector.at(3) + rprime * sv ) ) * ( wrate + at * trate );
405 
406  //fullAnswer.at(4) = h1*(sn*(r* fullStressVector.at(4)))*(wrate+at*trate);
407  //fullAnswer.at(5) = h1*(sn*(r* fullStressVector.at(5)))*(wrate+at*trate);
408  //fullAnswer.at(6) = h1*(sn*(r* fullStressVector.at(6)))*(wrate+at*trate);
409 
410  if ( mode == VM_Incremental ) {
412  return;
413  } else { // total values required
414  FloatArray ssv, fssv;
415  if ( status->giveShrinkageStrainVector()->giveSize() == 0 ) {
417  ssv.zero();
418  } else {
419  ssv = * status->giveShrinkageStrainVector();
420  }
421 
423  // add increment to total values
424  fullAnswer.add(fssv);
425 
427  return;
428  }
429 }
430 
431 double
433 {
434  // phi ... relative humidity
435  // w_h, n, a ... constants obtained from experiments
436  double phi;
437 
438  // relative humidity
439  phi = exp( a * ( 1.0 - pow( ( w_h / w ), ( n ) ) ) );
440 
441  if ( ( phi < 0.2 ) || ( phi > 0.98 ) ) {
442  OOFEM_ERROR("Relative humidity h = %e (w=%e) is out of range", phi, w);
443  }
444 
445  return phi;
446 }
447 } // end namespace oofem
static int giveSizeOfVoigtSymVector(MaterialMode mmode)
Returns the size of symmetric part of a reduced stress/strain vector according to given mode...
double inverse_sorption_isotherm(double w)
Function calculates relative humidity from water content (inverse relation form sorption isotherm)...
Definition: b3mat.C:432
MaterialMode giveMaterialMode()
Returns corresponding material mode of receiver.
Definition: gausspoint.h:191
double relMatAge
Physical age of the material at simulation time = 0.
Definition: rheoChM.h:138
void subtract(const FloatArray &src)
Subtracts array src to receiver.
Definition: floatarray.C:258
int number
Component number.
Definition: femcmpnn.h:80
double hum
Definition: b3mat.h:85
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
Returns material status of receiver in given integration point.
Definition: material.C:244
#define _IFT_B3Material_hum
Definition: b3mat.h:60
std::shared_ptr< Field > FieldPtr
Definition: field.h:72
double t0
Age when drying begins (in days)
Definition: b3mat.h:78
#define _IFT_B3Material_q2
Definition: b3mat.h:63
Domain * domain
Link to domain object, useful for communicating with other FEM components.
Definition: femcmpnn.h:82
#define _IFT_B3Material_EpsSinf
Definition: b3mat.h:68
#define _IFT_B3Material_r
Definition: b3mat.h:51
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Definition: maxwellChM.C:258
double q2
Definition: b3mat.h:81
double vs
Definition: b3mat.h:85
double & at(int i)
Coefficient access function.
Definition: floatarray.h:131
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
Definition: valuemodetype.h:78
#define _IFT_B3Material_a
Definition: b3mat.h:56
double sgn(double i)
Returns the signum of given value (if value is < 0 returns -1, otherwise returns 1) ...
Definition: mathfem.h:91
double E28
Definition: b3mat.h:80
EngngModel * giveEngngModel()
Returns engineering model to which receiver is associated.
Definition: domain.C:433
#define _IFT_B3Material_alpha2
Definition: b3mat.h:58
double giveTargetTime()
Returns target time.
Definition: timestep.h:146
enum oofem::B3Material::b3ShModeType shMode
#define _IFT_B3Material_ks
Definition: b3mat.h:59
Element * giveElement()
Returns corresponding element to receiver.
Definition: gausspoint.h:188
double ks
Definition: b3mat.h:85
double w
Definition: b3mat.h:80
MaterialMode
Type representing material mode of integration point.
Definition: materialmode.h:89
double r
Definition: b3mat.h:89
FieldManager * giveFieldManager()
Definition: engngm.h:131
#define OOFEM_LOG_DEBUG(...)
Definition: logger.h:128
double es0
Definition: b3mat.h:89
static void giveFullSymVectorForm(FloatArray &answer, const FloatArray &vec, MaterialMode matMode)
Converts the reduced unsymmetric Voigt vector (2nd order tensor) to full form.
bool isTheFirstStep()
Check if receiver is first step.
Definition: timestep.C:134
#define _IFT_B3Material_q1
Definition: b3mat.h:62
double timeFactor
Scaling factor transforming the simulation time units into days (gives the number of simulation time ...
Definition: rheoChM.h:167
#define _IFT_B3Material_mode
Definition: b3mat.h:43
double kt
Definition: b3mat.h:85
static void giveReducedSymVectorForm(FloatArray &answer, const FloatArray &vec, MaterialMode matMode)
Converts the full unsymmetric Voigt vector (2nd order tensor) to reduced form.
#define _IFT_B3Material_q5
Definition: b3mat.h:66
#define _IFT_B3Material_at
Definition: b3mat.h:53
virtual void computeTotalAverageShrinkageStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
Definition: b3mat.C:271
#define OOFEM_ERROR(...)
Definition: error.h:61
#define _IFT_B3Material_q4
Definition: b3mat.h:65
double q1
Definition: b3mat.h:81
EngngModelContext * giveContext()
Context requesting service.
Definition: engngm.h:1078
#define _IFT_B3Material_t0
Definition: b3mat.h:49
#define _IFT_B3Material_cc
Definition: b3mat.h:46
double n
Constant-exponent (obtained from experiments) n [Pedersen, 1990].
Definition: b3mat.h:94
#define _IFT_B3Material_fc
Definition: b3mat.h:45
virtual double computeCreepFunction(double t, double t_prime, GaussPoint *gp, TimeStep *tStep)
Evaluation of the creep compliance function at time t when loading is acting from time t_prime...
Definition: b3mat.C:190
double rprime
Definition: b3mat.h:89
double at
Definition: b3mat.h:89
double q3
Definition: b3mat.h:81
#define _IFT_B3Material_wc
Definition: b3mat.h:47
TimeStep * givePreviousStep()
Returns pointer to previous solution step.
Definition: timestep.C:114
double EpsSinf
Definition: b3mat.h:85
double q5
Definition: b3mat.h:81
FieldPtr giveField(FieldType key)
Returns the previously registered field under given key; NULL otherwise.
Definition: fieldmanager.C:63
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Definition: b3mat.C:46
double a
Constant (obtained from experiments) A [Pedersen, 1990].
Definition: b3mat.h:95
virtual void computeShrinkageStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode)
Free shrinkage at material point, requires staggered analysis.
Definition: b3mat.C:319
double w_h
Constant water content (obtained from experiments) w_h [Pedersen, 1990].
Definition: b3mat.h:93
void predictParametersFrom(double, double, double, double, double, double, double)
Definition: b3mat.C:126
#define _IFT_B3Material_q3
Definition: b3mat.h:64
virtual void giveShrinkageStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode)
Computes, for the given integration point, the strain vector induced by stress-independent shrinkage...
Definition: b3mat.C:241
Class representing vector of real numbers.
Definition: floatarray.h:82
double q4
Definition: b3mat.h:81
#define _IFT_B3Material_kt
Definition: b3mat.h:67
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
#define _IFT_B3Material_ac
Definition: b3mat.h:48
#define _IFT_B3Material_rprime
Definition: b3mat.h:52
Class representing the general Input Record.
Definition: inputrecord.h:101
#define _IFT_B3Material_shmode
Definition: b3mat.h:44
FloatArray * giveShrinkageStrainVector()
Definition: rheoChM.h:104
void zero()
Zeroes all coefficients of receiver.
Definition: floatarray.C:658
#define _IFT_B3Material_vs
Definition: b3mat.h:61
#define _IFT_B3Material_ncoeff
Definition: b3mat.h:55
#define _IFT_B3Material_alpha1
Definition: b3mat.h:57
REGISTER_Material(DummyMaterial)
#define IR_GIVE_OPTIONAL_FIELD(__ir, __value, __id)
Macro facilitating the use of input record reading methods.
Definition: inputrecord.h:78
int giveSize() const
Returns the size of receiver.
Definition: floatarray.h:218
virtual const FloatArray & giveViscoelasticStressVector() const
Definition: rheoChM.h:97
the oofem namespace is to define a context or scope in which all oofem names are defined.
#define IR_GIVE_FIELD(__ir, __value, __id)
Macro facilitating the use of input record reading methods.
Definition: inputrecord.h:69
#define _IFT_B3Material_wh
Definition: b3mat.h:54
This class implements associated Material Status to MaxwellChainMaterial.
Definition: maxwellChM.h:44
#define _IFT_B3Material_es0
Definition: b3mat.h:50
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
virtual int computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords)
Computes the global coordinates from given element&#39;s local coordinates.
Definition: element.C:1207
void add(const FloatArray &src)
Adds array src to receiver.
Definition: floatarray.C:156
const FloatArray & giveNaturalCoordinates()
Returns coordinate array of receiver.
Definition: gausspoint.h:138
void resize(int s)
Resizes receiver towards requested size.
Definition: floatarray.C:631

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:27 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011