#include <anisodam.h>
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 |
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.
anisodam | ( | void | ) |
~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.
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.
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 |
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.
ipp | - integration point number | |
y | - driving forces for volumetric damage | |
aa | - actual value of material parameter a | |
dvo | - old value of volumteric damage |
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().
Function computes damage driving force for deviatoric damage 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 |
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.
nu | - Poissons ratio | |
peps | - vector of principal strains |
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.
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 |
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.
d | - allocated matrix structure for material stiffness matrix | |
ipp | - integration point number |
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
ipp | - integration point number in the mechmat ip array. | |
ido | - index of internal variables for given material in the ipp other array |
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.
ipp | - integration point number in the mechmat ip array. | |
ido | - index of internal variables for given material in the ipp other array |
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.
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) |
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.
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 |
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
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 |
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.
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 |
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.
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 |
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.
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 |
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.
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) |
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.
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 |
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.
in | - pointer to the opened input text file |
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.
d | - allocated matrix structure for material stiffness matrix | |
ipp | - integration point number |
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.
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 |
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().
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 |
tensile strength
Definition at line 56 of file anisodam.h.
Referenced by anisodam(), brittle_damage(), dam_vol(), daminc_vol(), give_actual_ft(), loadfuncdev(), loadfuncvol(), pdam_dev(), pdaminc_dev(), and read().
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().