anisodam Class Reference

#include <anisodam.h>

List of all members.

Public Member Functions

 anisodam (void)
double brittle_damage (long ipp, double y, double e, double f, double uf, double omegao)
double dam_vol (long ipp, double y, double aa, double dvo)
void damdrvforce_dev (double nu, vector &peps, vector &pyt, vector &pyc)
double damdrvforce_vol (double nu, vector &peps)
double daminc_vol (long ipp, double y, double dy, double aa, double lf)
void elmatstiff (matrix &d, long ipp)
double give_actual_fc (long ipp)
double give_actual_ft (long ipp)
void give_actual_param_a (long ipp, long ido, double &aa, double &aat, double &aac)
void initvalues (long ipp, long ido)
void loadfuncdev (long ipp, double nu, vector &peps, vector &damt, vector &damc, double aat, double aac, vector &lft, vector &lfc)
double loadfuncvol (long ipp, double nu, vector &peps, double d, double aa)
void matstiff (matrix &d, long ipp, long ido)
void nlstresses (long ipp, long im, long ido)
void pdam_dev (long ipp, vector &pyc, vector &pyt, double aat, double aac, vector &pdamt, vector &pdamc)
void pdaminc_dev (long ipp, vector &pyc, vector &pyt, vector &dyt, vector &dyc, double aat, double aac, vector &lft, vector &lfc, vector &dpdamt, vector &dpdamc)
void read (XFILE *in)
void tmatstiff (matrix &d, long ipp, long ido)
void updateval (long ipp, long im, long ido)
 ~anisodam (void)

Public Attributes

double a
 material parameter A for volumetric damage
double ac
 material parameter Ac for compression
double at
 material parameter At for tension
double b
 material parameter B for volumetric damage
double bc
 material parameter Bc for compression
double bt
 material parameter Bt for tension
corr_disip_en cde
 correction of disipated energy switch
dam_evolfunc damevf
 type of damage evolution function
double fc
 compressive strength
double ft
 tensile strength
double gf
 fracture energy of volumetric damage
double gfc
 fracture energy of deviatoric damage for compression
double gft
 fracture energy of deviatoric damage for tension
strretalg sra
 parameters for Newton tangent method for damage parameter computation for brittle evolution fucntion and correction of dissipated energy
double ufc
 initial crack opening u_fc or eps_fc - controls initial slope of softening branch for compression
double uft
 initial crack opening u_ft or eps_ft - controls initial slope of softening branch for tension
double y0
 initial treshold for damage driving force Y0 for volumetric damage
double y0c
 initial treshold for damage driving force Y0 for compression
double y0t
 initial treshold for damage driving force Y0 for tension

Detailed Description

This class defines scalar isotropic damage material model. The different type of norms for the computing parameters of the damage function can be used. The order of internal variables is following : 0 - actual value of param a 1 - actual value of param At 2 - actual value of param Ac 3 - reached value of volumetric damage parameter 4..6 - reached values of deviatoric damage parameters for tension 7..9 - reached values of deviatoric damage parameters for compression 10..15 - deviatoric damage tensor for tension 16..21 - deviatoric damage tensor for tension + volumteric damage 22 - crack opening in volumetric part; 23..25 - cracks openings computed from tensile damage tensor

Definition at line 27 of file anisodam.h.


Constructor & Destructor Documentation

anisodam ( void   ) 

The constructor inializes attributes to zero values.

Created by Tomas Koudelka, 9.2006 Modified by Tomas Koudelka, 10.2008

Definition at line 29 of file anisodam.cpp.

References a, ac, at, b, bc, bt, cde, corr_off, fc, ft, gf, gfc, gft, ufc, uft, y0, y0c, and y0t.

~anisodam ( void   ) 

The destructor is defined only for the formal purposes.

Created by Tomas Koudelka, 9.2006

Definition at line 45 of file anisodam.cpp.


Member Function Documentation

double brittle_damage ( long  ipp,
double  y,
double  e,
double  f,
double  uf,
double  omegao 
)

The function computes damage parameter which is the result of the damage function for brittle type of damage function. Correction of dissipated energy is controled by the cde flag.

Parameters:
ipp - integration point number
y - parameter of damage function=equvalent strain (generalized conjugated thermodynamical force)
e - actual value of Young modulus
f - actual value of strength (tensile or compressive)
uf - actual value of initial crack opening
omegao - old value of damage
Returns:
Function returns value of the damage parameter omega.

Created by Tomas Koudelka, 10.2008

Definition at line 539 of file anisodam.cpp.

References cde, corr_off, mechmat::elip, ft, mechtop::give_area(), mechtop::give_dimension(), strretalg::give_err(), mechtop::give_length(), strretalg::give_ni(), mechtop::give_volume(), h(), intpoints::hmt, mechmat::ip, Mm, Mt, print_err(), and sra.

Referenced by dam_vol(), and pdam_dev().

double dam_vol ( long  ipp,
double  y,
double  aa,
double  dvo 
)

Function computes value of damage parameter d. The damage parameter is derived from the damage function.

Parameters:
ipp - integration point number
y - driving forces for volumetric damage
aa - actual value of material parameter a
dvo - old value of volumteric damage
Returns:
The function returns value of the volumetric damage parameter.

Created by Tomas Koudelka, 9.2006 Modified by Tomas Koudelka, 10.2008

Definition at line 648 of file anisodam.cpp.

References b, brittle, brittle_damage(), damevf, ft, mechmat::give_actual_ft(), mechmat::give_actual_ym(), Mm, print_err(), quasi_brittle, uft, and y0.

Referenced by nlstresses().

void damdrvforce_dev ( double  nu,
vector peps,
vector pyt,
vector pyc 
)

Function computes damage driving force for deviatoric damage parameters.

Parameters:
nu - Poissons ratio
peps - vector of principal strains
pyt - vector of principal values of driving forces for tension damage parameters
pyc - vector of principal values of driving forces for compression damage parameters
Returns:
The function returns actual values of driving forces in parameters pyt and pyc.

Recreated by Tomas Koudelka, - 6.2008

Definition at line 202 of file anisodam.cpp.

References fillv().

Referenced by loadfuncdev(), and nlstresses().

double damdrvforce_vol ( double  nu,
vector peps 
)

Function computes damage driving force for volumetric damage parameter.

Parameters:
nu - Poissons ratio
peps - vector of principal strains
Returns:
Function returns real value of damage driving force.

Created by Tomas Koudelka, - 9.2006

Definition at line 110 of file anisodam.cpp.

Referenced by loadfuncvol(), and nlstresses().

double daminc_vol ( long  ipp,
double  y,
double  dy,
double  aa,
double  lf 
)

Function computes increments of damage parameter d. The increment of damage parameter is expressed as derivative of damage evolution function with respect to driving force.

Parameters:
ipp - integration point number
y - driving forces for volumetric damage
dy - increment of driving forces for volumetric damage
aa - actual value of material parameter a
lf - actual value of load function
Returns:
The function returns value of the damage parameter increment.

Created by Tomas Koudelka, 9.2006 Modified by Tomas Koudelka, 10.2008

Definition at line 395 of file anisodam.cpp.

References a, b, brittle, damevf, ft, mechmat::give_actual_ft(), mechmat::give_actual_ym(), Mm, print_err(), quasi_brittle, uft, and y0.

void elmatstiff ( matrix d,
long  ipp 
)

The function computes elastic material stiffnes matrix from actual Young modulus.

Parameters:
d - allocated matrix structure for material stiffness matrix
ipp - integration point number
Returns:
The function returns elastic stiffness matrix in the parameter d.

Created by Tomas Koudelka, 9.2006

Definition at line 941 of file anisodam.cpp.

References cmulm(), elastisomat::e, mechmat::eliso, elisomat, mechmat::elmatstiff(), intpoints::gemid(), mechmat::give_actual_ym(), intpoints::idm, mechmat::ip, Mm, print_err(), and intpoints::tm.

Referenced by matstiff(), and tmatstiff().

double give_actual_fc ( long  ipp  ) 

The function returns the actual value of compressive strength

Parameters:
ipp - integration point number in the mechmat ip array.
ido - index of internal variables for given material in the ipp other array
Returns:
The function returns compressive strength.

Created by Tomas Koudelka, 10.2008

Definition at line 874 of file anisodam.cpp.

References fc.

Referenced by mechmat::give_actual_fc().

double give_actual_ft ( long  ipp  ) 

The function returns the actual value of tensile strength.

Parameters:
ipp - integration point number in the mechmat ip array.
ido - index of internal variables for given material in the ipp other array
Returns:
The function returns tensile strength.

Created by Tomas Koudelka, 10.2008

Definition at line 857 of file anisodam.cpp.

References ft.

Referenced by mechmat::give_actual_ft().

void give_actual_param_a ( long  ipp,
long  ido,
double &  aa,
double &  aat,
double &  aac 
)

Function computes material parameters A, At and Ac. If the correction of dissipated energy is required, they are computed with respect to size of element for given ipp and variable softening modulus technique was used in order to avoid mesh dependence. Otherwise, values read from the input file are used.

Parameters:
d - allocated matrix structure for material stiffness matrix
ipp - integration point number
ido - index of internal variables for given material in the ipp other array
aa - actual value of parameter A (output)
aat - actual value of parameter At (output)
aac - actual value of parameter Ac (output)
Return values:
The function returns actual values of material parameters A, A_t and A_c in the parameters aa, aat, aac.

Created by Tomas Koudelka, 9.2006

Definition at line 787 of file anisodam.cpp.

References a, ac, at, b, bc, bt, cde, corr_off, mechmat::elip, intpoints::eqother, gf, gfc, gft, mechmat::give_actual_ym(), mechtop::give_area(), mechtop::give_dimension(), mechtop::give_length(), mechtop::give_volume(), h(), mechmat::ip, M_PI, Mm, Mt, print_err(), y0, y0c, and y0t.

Referenced by initvalues(), and nlstresses().

void initvalues ( long  ipp,
long  ido 
)

Function initializes material parameters A, At and Ac.

Parameters:
d - allocated matrix structure for material stiffness matrix
ipp - integration point number
ido - index of internal variables for given material in the ipp other array
Returns:
The function does not return anything.

Created by Tomas Koudelka, 9.2006

Definition at line 892 of file anisodam.cpp.

References give_actual_param_a().

Referenced by mechmat::initvalues().

void loadfuncdev ( long  ipp,
double  nu,
vector peps,
vector damt,
vector damc,
double  aat,
double  aac,
vector lft,
vector lfc 
)

Function computes value of load function for deviatoric damage

Parameters:
ipp - integration point number
nu - Poissons ratio
peps - vector of principal strains
damt - vector actual values of principal damage parameters for tension
damc - vector actual values of principal damage parameters for compression
aat - actual values of material parameter a for tension
aac - actual values of material parameter a for compression
lft - vector of resulting values of load function for tension for each principal direction
lfc - vector of resulting values of load function for compression for each principal direction
Returns:
The function returns load function values separately for tension and compression in parameters lft and lfc for each principal direction.

Created by Tomas Koudelka, 9.2006 Modified by Tomas Koudelka, 10.2008

Definition at line 300 of file anisodam.cpp.

References bc, brittle, bt, damdrvforce_dev(), damevf, fc, ft, mechmat::give_actual_fc(), mechmat::give_actual_ft(), mechmat::give_actual_ym(), Mm, print_err(), quasi_brittle, ufc, uft, y0c, and y0t.

double loadfuncvol ( long  ipp,
double  nu,
vector peps,
double  d,
double  aa 
)

Function computes value of load function for the volumetric damage.

Parameters:
ipp - integration point number
nu - Poissons ratio
peps - vector of principal strains
d - actual value of damage parameter
aa - actual value of material parameter a
Returns:
The function returns value of load function for the volumetric damage.

Created by Tomas Koudelka, 9.2006

Definition at line 235 of file anisodam.cpp.

References b, brittle, damdrvforce_vol(), damevf, f, ft, mechmat::give_actual_ft(), mechmat::give_actual_ym(), Mm, print_err(), quasi_brittle, uft, and y0.

void matstiff ( matrix d,
long  ipp,
long  ido 
)

The function computes material stiffnes matrix.

Parameters:
d - allocated matrix structure for material stiffness matrix
ipp - integration point number
ido - index of internal variables for given material in the ipp other array
Returns:
The function returns stiffness matrix in the parameter d.

Created by Tomas Koudelka, 9.2006

Definition at line 911 of file anisodam.cpp.

References elmatstiff(), initial_stiff, Mp, probdesc::nlman, print_err(), nonlinman::stmat, tangent_stiff, and tmatstiff().

Referenced by mechmat::matstiff().

void nlstresses ( long  ipp,
long  im,
long  ido 
)

The function computes correct stresses in the integration point and stores them into ip stress array.

Parameters:
ipp - integration point pointer
im - index of material type for given ip
ido - index of internal variables for given material in the ipp other array
Returns:
The function does not return anything.

Created by Tomas Koudelka, 9.2006 Modified by Tomas Koudelka, 10.2008

Definition at line 1203 of file anisodam.cpp.

References copyv(), dam_vol(), damdrvforce_dev(), damdrvforce_vol(), mechmat::elip, mechmat::eliso, intpoints::eqother, fillm(), for(), intpoints::gemid(), give_actual_param_a(), mechmat::give_actual_ym(), mechtop::give_area(), mechtop::give_dimension(), mechtop::give_length(), mechtop::give_volume(), h(), intpoints::idm, mechmat::ip, lgmatrixtransf(), limit, Mm, Mp, Mt, intpoints::ncompstr, nijac, elastisomat::nu, intpoints::other, pdam_dev(), planestress, princ_val(), print_err(), intpoints::ssst, strain, intpoints::strain, intpoints::stress, stress, tensor_vector(), vector_tensor(), and probdesc::zero.

Referenced by mechmat::compnonloc_nlstresses(), and mechmat::computenlstresses().

void pdam_dev ( long  ipp,
vector pyc,
vector pyt,
double  aat,
double  aac,
vector pdamt,
vector pdamc 
)

Function computes values of principal damage parameters Dt and Dc. The damage parameters are derived from the damage function. Prameters pdamc and pdamt should contain old values of damage parameters attained in the previous steps.

Parameters:
ipp - integration point number
pyc - vector of principal driving forces for tension
pyt - vector of principal driving forces for tension
aat - actual value of material parameter at
aac - actual value of material parameter ac
pdamc - vector of principal damage parameters for tension (input/output)
pdamt - vector of principal damage parameters for compression (input/output)
Returns:
The function returns values of principal damage parameters in the parameters pdamt and pdamc.

Created by Tomas Koudelka, 9.2006 Modified by Tomas Koudelka, 10.2008

Definition at line 702 of file anisodam.cpp.

References bc, brittle, brittle_damage(), bt, damevf, fc, fillv(), ft, mechmat::give_actual_fc(), mechmat::give_actual_ft(), mechmat::give_actual_ym(), Mm, print_err(), quasi_brittle, ufc, uft, y0c, and y0t.

Referenced by nlstresses().

void pdaminc_dev ( long  ipp,
vector pyc,
vector pyt,
vector dyt,
vector dyc,
double  aat,
double  aac,
vector lft,
vector lfc,
vector dpdamt,
vector dpdamc 
)

Function computes increments of damage parameters Dt and Dc. The increments of damage parameters are expressed as derivatives of damage evolution function with respect to driving forces.

Parameters:
ipp - integration point number
pyc - vector of principal driving forces for tension
pyt - vector of principal driving forces for tension
dyc - vector of principal driving forces increments for tension
dyt - vector of principal driving forces increments for compression
aat - actual value of material parameter at
aac - actual value of material parameter ac
lft - vector of actual load function values for tension
lfc - vector of actual load function values for compression
pdamc - vector of principal damage parameters increments for tension
pdamt - vector of principal damage parameters increments for compression
Returns:
The function returns value of principal damage parameters increments in the parameters dpdamt and dpdamc.

Created by Tomas Koudelka, 9.2006 Modified by Tomas Koudelka, 10.2008

Definition at line 453 of file anisodam.cpp.

References bc, brittle, bt, damevf, fc, fillv(), ft, mechmat::give_actual_fc(), mechmat::give_actual_ft(), mechmat::give_actual_ym(), Mm, print_err(), quasi_brittle, ufc, uft, y0c, and y0t.

void read ( XFILE in  ) 

The function reads material parameters from the opened text file given by the parameter in.

Parameters:
in - pointer to the opened input text file
Returns:
The function does not return anything.

Created by Tomas Koudelka, 9.2006 Modified by Tomas Koudelka, 10.2008

Definition at line 63 of file anisodam.cpp.

References a, ac, at, b, bc, brittle, bt, cde, corr_disip_en_kwdset(), corr_off, corr_on, dam_evolfunc_kwdset(), damevf, fc, ft, gf, gfc, gft, print_err(), quasi_brittle, strretalg::read(), sra, ufc, uft, xfscanf(), y0, y0c, and y0t.

Referenced by mechmat::readmattype().

void tmatstiff ( matrix d,
long  ipp,
long  ido 
)

The function computes tangent material stiffnes matrix from actual Young modulus.

Parameters:
d - allocated matrix structure for material stiffness matrix
ipp - integration point number
Returns:
The function returns tangent stiffness matrix in the parameter d.

Created by Tomas Koudelka, 9.2006

Definition at line 969 of file anisodam.cpp.

References allocm(), copym(), dpdir_da(), mechmat::eliso, elisomat, elmatstiff(), intpoints::eqother, f_tensor(), fillm(), g, intpoints::gemid(), bmatrix::gen_indices(), mechmat::give_actual_ym(), intpoints::idm, invm(), mechmat::ip, lgmatrixtransf(), limit, Mm, Mp, intpoints::ncompstr, nijac, elastisomat::nu, intpoints::other, planestrain, planestress, princ_val(), print_err(), spacestress, intpoints::ssst, strain, intpoints::strain, intpoints::tm, vector_tensor(), and probdesc::zero.

Referenced by matstiff().

void updateval ( long  ipp,
long  im,
long  ido 
)

Function updates values in the other array reached in the previous equlibrium state to values reached in the new actual equilibrium state.

Parameters:
ipp - integration point number in the mechmat ip array.
im - index of material type for given ip
ido - index of internal variables for given material in the ipp other array
Returns:
The function does not return anything.

Created by Tomas Koudelka, 9.2006

Definition at line 1404 of file anisodam.cpp.

References intpoints::eqother, mechmat::givencompeqother(), mechmat::ip, Mm, and intpoints::other.

Referenced by mechmat::updateipvalmat().


Member Data Documentation

double a

material parameter A for volumetric damage

Definition at line 68 of file anisodam.h.

Referenced by anisodam(), daminc_vol(), give_actual_param_a(), and read().

double ac

material parameter Ac for compression

Definition at line 80 of file anisodam.h.

Referenced by anisodam(), give_actual_param_a(), and read().

double at

material parameter At for tension

Definition at line 74 of file anisodam.h.

Referenced by anisodam(), give_actual_param_a(), and read().

double b

material parameter B for volumetric damage

Definition at line 70 of file anisodam.h.

Referenced by anisodam(), dam_vol(), daminc_vol(), give_actual_param_a(), loadfuncvol(), and read().

double bc

material parameter Bc for compression

Definition at line 82 of file anisodam.h.

Referenced by anisodam(), give_actual_param_a(), loadfuncdev(), pdam_dev(), pdaminc_dev(), and read().

double bt

material parameter Bt for tension

Definition at line 76 of file anisodam.h.

Referenced by anisodam(), give_actual_param_a(), loadfuncdev(), pdam_dev(), pdaminc_dev(), and read().

correction of disipated energy switch

Definition at line 66 of file anisodam.h.

Referenced by anisodam(), brittle_damage(), give_actual_param_a(), and read().

type of damage evolution function

Definition at line 54 of file anisodam.h.

Referenced by dam_vol(), daminc_vol(), loadfuncdev(), loadfuncvol(), pdam_dev(), pdaminc_dev(), and read().

double fc

compressive strength

Definition at line 60 of file anisodam.h.

Referenced by anisodam(), give_actual_fc(), loadfuncdev(), pdam_dev(), pdaminc_dev(), and read().

double ft
double gf

fracture energy of volumetric damage

Definition at line 86 of file anisodam.h.

Referenced by anisodam(), give_actual_param_a(), and read().

double gfc

fracture energy of deviatoric damage for compression

Definition at line 90 of file anisodam.h.

Referenced by anisodam(), give_actual_param_a(), and read().

double gft

fracture energy of deviatoric damage for tension

Definition at line 88 of file anisodam.h.

Referenced by anisodam(), give_actual_param_a(), and read().

parameters for Newton tangent method for damage parameter computation for brittle evolution fucntion and correction of dissipated energy

Definition at line 64 of file anisodam.h.

Referenced by brittle_damage(), and read().

double ufc

initial crack opening u_fc or eps_fc - controls initial slope of softening branch for compression

Definition at line 62 of file anisodam.h.

Referenced by anisodam(), loadfuncdev(), pdam_dev(), pdaminc_dev(), and read().

double uft

initial crack opening u_ft or eps_ft - controls initial slope of softening branch for tension

Definition at line 58 of file anisodam.h.

Referenced by anisodam(), dam_vol(), daminc_vol(), loadfuncdev(), loadfuncvol(), pdam_dev(), pdaminc_dev(), and read().

double y0

initial treshold for damage driving force Y0 for volumetric damage

Definition at line 72 of file anisodam.h.

Referenced by anisodam(), dam_vol(), daminc_vol(), give_actual_param_a(), loadfuncvol(), and read().

double y0c

initial treshold for damage driving force Y0 for compression

Definition at line 84 of file anisodam.h.

Referenced by anisodam(), give_actual_param_a(), loadfuncdev(), pdam_dev(), pdaminc_dev(), and read().

double y0t

initial treshold for damage driving force Y0 for tension

Definition at line 78 of file anisodam.h.

Referenced by anisodam(), give_actual_param_a(), loadfuncdev(), pdam_dev(), pdaminc_dev(), and read().


The documentation for this class was generated from the following files:

Generated by  doxygen 1.6.2