Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Antoine Jacquey
LYNX
Commits
7e93a5b6
Commit
7e93a5b6
authored
Mar 19, 2019
by
Antoine Jacquey
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed bug when no friction angle is specified.
parent
218798b3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
18 deletions
+24
-18
src/materials/LynxDamageDeformation.C
src/materials/LynxDamageDeformation.C
+22
-17
src/materials/LynxDeformationBase.C
src/materials/LynxDeformationBase.C
+2
-1
No files found.
src/materials/LynxDamageDeformation.C
View file @
7e93a5b6
...
@@ -206,23 +206,28 @@ LynxDamageDeformation::damageCorrection()
...
@@ -206,23 +206,28 @@ LynxDamageDeformation::damageCorrection()
RankFourTensor
RankFourTensor
LynxDamageDeformation
::
damageTangentOperator
(
const
RankFourTensor
&
tme
)
LynxDamageDeformation
::
damageTangentOperator
(
const
RankFourTensor
&
tme
)
{
{
// Build damage correction to the elasticity tensor
if
(
_has_plasticity
&&
(
_G
[
_qp
]
!=
0
.
0
)
&&
(
_K
[
_qp
]
!=
0
.
0
))
Real
xi
=
strainRatio
(
_elastic_strain
[
_qp
]);
{
RankTwoTensor
e
=
(
_elastic_strain
[
_qp
].
L2norm
()
!=
0
.
0
)
// Build damage correction to the elasticity tensor
?
_elastic_strain
[
_qp
]
/
_elastic_strain
[
_qp
].
L2norm
()
Real
xi
=
strainRatio
(
_elastic_strain
[
_qp
]);
:
RankTwoTensor
();
RankTwoTensor
e
=
(
_elastic_strain
[
_qp
].
L2norm
()
!=
0
.
0
)
RankFourTensor
damaged_tensor
=
?
_elastic_strain
[
_qp
]
/
_elastic_strain
[
_qp
].
L2norm
()
_damage_plasticity
->
_gamma
*
:
RankTwoTensor
();
((
xi
-
2
.
0
*
_damage_plasticity
->
_xi0
)
*
_identity_four
+
e
.
outerProduct
(
_identity_two
)
+
RankFourTensor
damaged_tensor
=
_identity_two
.
outerProduct
(
e
)
-
xi
*
e
.
outerProduct
(
e
));
_damage_plasticity
->
_gamma
*
((
xi
-
2
.
0
*
_damage_plasticity
->
_xi0
)
*
_identity_four
+
e
.
outerProduct
(
_identity_two
)
+
RankFourTensor
damage_operator
=
_damage
[
_qp
]
*
damaged_tensor
*
tme
;
_identity_two
.
outerProduct
(
e
)
-
xi
*
e
.
outerProduct
(
e
));
if
((
_damage_rate
[
_qp
]
>
0
.
0
)
&&
(
_damage_old
[
_qp
]
!=
1
.
0
)
&&
RankFourTensor
damage_operator
=
_damage
[
_qp
]
*
damaged_tensor
*
tme
;
(
_damage_rate
[
_qp
]
<
(
1
.
0
-
_damage_old
[
_qp
])
/
_dt
))
damage_operator
-=
_dstress_ddamage
[
_qp
].
outerProduct
(
_ddamage_rate_dstrain
[
_qp
])
*
_dt
;
if
((
_damage_rate
[
_qp
]
>
0
.
0
)
&&
(
_damage_old
[
_qp
]
!=
1
.
0
)
&&
(
_damage_rate
[
_qp
]
<
(
1
.
0
-
_damage_old
[
_qp
])
/
_dt
))
return
damage_operator
;
damage_operator
-=
_dstress_ddamage
[
_qp
].
outerProduct
(
_ddamage_rate_dstrain
[
_qp
])
*
_dt
;
return
damage_operator
;
}
else
return
RankFourTensor
();
}
}
Real
Real
...
...
src/materials/LynxDeformationBase.C
View file @
7e93a5b6
...
@@ -342,7 +342,8 @@ LynxDeformationBase::computeQpDeformation()
...
@@ -342,7 +342,8 @@ LynxDeformationBase::computeQpDeformation()
reformStressTensor
(
pressure
,
stress_dev
);
reformStressTensor
(
pressure
,
stress_dev
);
// Additional correction
// Additional correction
damageCorrection
();
if
(
_has_plasticity
&&
(
_G
[
_qp
]
!=
0
.
0
)
&&
(
_K
[
_qp
]
!=
0
.
0
))
damageCorrection
();
// Update tangent operator modulus
// Update tangent operator modulus
if
(
_fe_problem
.
currentlyComputingJacobian
())
if
(
_fe_problem
.
currentlyComputingJacobian
())
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment