245Concrete3 :: giveCrackingModulus(MatResponseMode rMode,
GaussPoint *gp,
246 double crackStrain,
int i)
const
257 double Cf,
Gf,
Ft, Le, ef, minEffStrainForFullyOpenCrack;
258 double emax, c1 {3.}, c2 {6.93};
275 if ( rMode == TangentStiffness ) {
278 if ( ( crackStrain >= minEffStrainForFullyOpenCrack ) ||
279 ( emax >= minEffStrainForFullyOpenCrack ) ) {
282 }
else if ( crackStrain >= emax ) {
284 Cf = -
Ft / minEffStrainForFullyOpenCrack;
287 Cf =
Ft * ( minEffStrainForFullyOpenCrack - emax ) /
288 ( emax * minEffStrainForFullyOpenCrack );
291 ef =
Gf / ( Le *
Ft );
292 if ( crackStrain >= emax ) {
294 Cf = -
Ft / ef *exp(-crackStrain / ef);
297 Cf =
Ft / emax * exp(-emax / ef);
300 ef = 5.136 *
Gf / ( Le *
Ft );
301 if ( (crackStrain >= ef) || (emax >= ef) ) {
303 }
else if ( crackStrain >= emax ) {
306 Cf =
Ft * ( ( 3. * c1 * c1 * c1 * crackStrain * crackStrain * exp(-( c2 * crackStrain ) / ef) ) / ( ef * ef * ef ) - ( c2 * exp(-( c2 * crackStrain ) / ef) * ( c1 * c1 * c1 * crackStrain * crackStrain * crackStrain + ef * ef * ef ) ) / ( ef * ef * ef * ef ) - ( exp(-c2) * ( c1 * c1 * c1 + 1. ) ) / ef );
309 Cf =
Ft / emax * ( ( 1. + pow( ( c1 * emax / ef ), 3. ) ) * exp(-c2 * emax / ef) - emax / ef * ( 1. + c1 * c1 * c1 ) * exp(-c2) );
318 if ( ( crackStrain >= minEffStrainForFullyOpenCrack ) ||
319 ( emax >= minEffStrainForFullyOpenCrack ) ) {
324 Cf =
Ft * ( minEffStrainForFullyOpenCrack - emax ) /
325 ( emax * minEffStrainForFullyOpenCrack );
328 ef =
Gf / ( Le *
Ft );
329 Cf =
Ft / emax * exp(-emax / ef);
331 ef = 5.136 *
Gf / ( Le *
Ft );
332 Cf =
Ft / emax * ( ( 1. + pow( ( c1 * emax / ef ), 3. ) ) * exp(-c2 * emax / ef) - emax / ef * ( 1. + c1 * c1 * c1 ) * exp(-c2) );
386Concrete3 :: giveNormalCrackingStress(
GaussPoint *gp,
double crackStrain,
int i)
const
391 double Cf,
Ft,
Gf, Le, answer, ef, minEffStrainForFullyOpenCrack, c1 {3.}, c2 {6.93}, emax;
403 if ( ( crackStrain >= minEffStrainForFullyOpenCrack ) ||
404 ( emax >= minEffStrainForFullyOpenCrack ) ) {
407 }
else if ( crackStrain >= emax ) {
409 answer =
Ft + Cf * crackStrain;
410 }
else if ( crackStrain <= 0. ) {
416 answer = crackStrain *
Ft *
417 ( minEffStrainForFullyOpenCrack - emax ) /
418 ( emax * minEffStrainForFullyOpenCrack );
421 ef =
Gf / ( Le *
Ft );
422 if ( crackStrain >= emax ) {
424 answer =
Ft * exp(-crackStrain / ef);
428 answer =
Ft * crackStrain / emax *
432 ef = 5.136 *
Gf / ( Le *
Ft );
433 if ( (crackStrain >= ef) || (emax >= ef) ) {
436 }
else if ( crackStrain >= emax ) {
438 answer =
Ft * ( ( 1. + pow( ( c1 * crackStrain / ef ), 3. ) ) * exp(-c2 * crackStrain / ef) - crackStrain / ef * ( 1. + c1 * c1 * c1 ) * exp(-c2) );
439 }
else if ( crackStrain <= 0) {
445 answer =
Ft * crackStrain / emax * ( ( 1. + pow( ( c1 * emax / ef ), 3. ) ) * exp(-c2 * emax / ef) - emax / ef * ( 1. + c1 * c1 * c1 ) * exp(-c2) );