60 double gn = jump.
at(1);
61 double gs1 = jump.
at(2);
62 double gs2 = jump.
at(3);
63 double gs = sqrt(gs1 * gs1 + gs2 * gs2);
67 double tn =
GIc /
gn0 *exp(-xin) * ( xin * exp(-xit * xit) + ( 1.0 -
q ) / (
r - 1.0 ) * ( 1.0 - exp(-xit * xit) ) * (
r - xin ) );
69 answer = {tn, 0., 0.};
84 double gn = jumpVector.
at(1);
85 double gs1 = jumpVector.at(2);
86 double gs2 = jumpVector.at(3);
87 double gs = sqrt(gs1 * gs1 + gs2 * gs2);
89 if ( rMode == TangentStiffness ) {
92 double dtndgn =
GIc /
gn0 /
gn0 *exp(-xin) *
93 ( ( 1.0 - xin ) * exp(-xit * xit) + ( 1.0 -
q ) / (
r - 1.0 ) * ( 1.0 - exp(-xit * xit) ) * ( -
r + xin - 1.0 ) );
97 answer.
at(1, 1) = dtndgn;
108 return StructuralInterfaceMaterial :: giveIPValue(answer, gp, type, tStep);
130 if ( this->
GIc < 0.0 ) {
136ExpCZMaterial :: checkConsistency()
142ExpCZMaterial :: printYourself()
144 printf(
"Paramters for ExpCZMaterial: \n");
146 printf(
"-Strength paramters \n");
147 printf(
" sigfn = %e \n", this->
sigfn);
148 printf(
" GIc = %e \n", this->
GIc);
149 printf(
" GIIc = %e \n", this->
GIIc);
152 printf(
"-jump limits \n");
153 printf(
" gn0 = %e \n", this->
gn0);
154 printf(
" gs0 = %e \n", this->
gs0);
156 printf(
"-other parameters \n");
157 printf(
" q = %e \n", this->
q);
158 printf(
" r = %e \n", this->
r);
167ExpCZMaterialStatus :: printOutputAt(FILE *file,
TimeStep *tStep)
169 StructuralInterfaceMaterialStatus :: printOutputAt(file, tStep);
182ExpCZMaterialStatus :: initTempStatus()
184 StructuralInterfaceMaterialStatus :: initTempStatus();
190ExpCZMaterialStatus :: updateYourself(
TimeStep *tStep)
192 StructuralInterfaceMaterialStatus :: updateYourself(tStep);
199 StructuralInterfaceMaterialStatus :: saveContext(stream, mode);
201 if ( !stream.
write(kappa) ) {
205 if ( !stream.
write(damage) ) {
213 StructuralInterfaceMaterialStatus :: restoreContext(stream, mode);
215 if ( !stream.read(kappa) ) {
219 if ( !stream.read(damage) ) {
virtual int write(const int *data, std::size_t count)=0
Writes count integer values from array pointed by data.
double gn0
normal jump at damage initiation
double gs0
shear jump at damage initiations
double & at(std::size_t i)
void resize(Index rows, Index cols)
void zero()
Zeroes all coefficient of receiver.
double at(std::size_t i, std::size_t j) const
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
StructuralInterfaceMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralInterfaceMaterialStatus with number n, belonging to domain d and I...
const FloatArrayF< 3 > & giveTempJump() const
Returns the const pointer to receiver's temporary jump.
void letTempTractionBe(const FloatArrayF< 3 > v)
Assigns tempTraction to given vector v.
void letTempJumpBe(const FloatArrayF< 3 > v)
Assigns tempJump to given vector v.
StructuralInterfaceMaterial(int n, Domain *d)
#define _IFT_ExpCZMaterial_sigfn
#define _IFT_ExpCZMaterial_g1c
@ CIO_IOERR
General IO error.