56 double normalJump = jump[0];
59 double maxShearStress = 0.0;
65 maxShearStress = fabs( normalStress ) * this->
frictCoeff;
70 auto shearStress = this->
kn * shearJump - tempShearStressShift;
71 double dp =
norm(shearStress);
73 if ( dp > maxShearStress ) {
74 shearStress *= maxShearStress / ( dp + eps );
76 tempShearStressShift = this->
kn * shearJump - shearStress;
79 FloatArrayF<3> answer = {normalStress, shearStress[0], shearStress[1]};
90IntMatCoulombContact :: give3dStiffnessMatrix_Eng(MatResponseMode rMode,
GaussPoint *gp,
TimeStep *tStep)
const
94 double normalJump = jump[0];
97 if ( rMode == SecantStiffness || rMode == TangentStiffness ) {
113 StructuralInterfaceMaterial :: initializeFrom( ir );
128 StructuralInterfaceMaterial :: giveInputRecord(input);
141IntMatCoulombContactStatus :: printOutputAt(FILE *file,
TimeStep *tStep)
const
144 fprintf(file,
"status { ");
145 fprintf( file,
"shearStressShift (%f, %f)", this->
shearStressShift.at( 1 ), this->shearStressShift.at( 2 ) );
146 fprintf(file,
"}\n");
151IntMatCoulombContactStatus :: initTempStatus()
159IntMatCoulombContactStatus :: updateYourself(
TimeStep *tStep)
#define REGISTER_Material(class)
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
StructuralInterfaceMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralInterfaceMaterialStatus with number n, belonging to domain d and I...
void initTempStatus() override
const FloatArrayF< 3 > & giveTempJump() const
Returns the const pointer to receiver's temporary jump.
void saveContext(DataStream &stream, ContextMode mode) override
void letTempTractionBe(const FloatArrayF< 3 > v)
Assigns tempTraction to given vector v.
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
void letTempJumpBe(const FloatArrayF< 3 > v)
Assigns tempJump to given vector v.
void updateYourself(TimeStep *tStep) override
void restoreContext(DataStream &stream, ContextMode mode) override
StructuralInterfaceMaterial(int n, Domain *d)
double norm(const FloatArray &x)
FloatMatrixF< N, N > eye()
Constructs an identity matrix.