Skip to content
Snippets Groups Projects
Commit c57520d2 authored by Julien Leclerc's avatar Julien Leclerc
Browse files

checkpoint working version

parent eeb354bc
Branches
Tags
1 merge request!156Coal jl8
......@@ -393,6 +393,9 @@ void mlawNonLocalPorousCoupledLaw::checkCoalescence(IPNonLocalPorosity* q1, cons
// If crack transition is used,
// At the interface: coalescence is used, namely as crack insertion criterion
// In the bulk, nothing is done (== always Gurson)
q1Thom->getRefToYieldOffset() = 0.;
if (q1->getLocation() == IPVariable::INTERFACE_MINUS or q1->getLocation() == IPVariable::INTERFACE_PLUS){
// At the interface:
// Check if transition has already occurs or not
......@@ -427,7 +430,6 @@ void mlawNonLocalPorousCoupledLaw::checkCoalescence(IPNonLocalPorosity* q1, cons
// NB: if _CfTOffsetMethod > 1: fT>0,
// Compute Thomason yield surface
double yieldThomason = _mlawCoales->yieldFunction(kcorEq,pcor,R,yieldfV,q0,q1,T);
q1Thom->getRefToYieldOffset() = yieldThomason;
// Offset management
if(_CfTOffsetMethod == 2 or _CfTOffsetMethod == 3){
......@@ -507,9 +509,10 @@ void mlawNonLocalPorousCoupledLaw::checkCoalescence(IPNonLocalPorosity* q1, cons
// Not the first time that coalescence appears
if (q0Thom->getCoalescenceActiveFlag()){
// If Thomason is/was used for this time step : check if Gurson is more restrictive
q1Thom->getRefToYieldOffset() = _mlawGrowth->yieldFunction(kcorEq,pcor,R,yieldfV,q0,q1,T);
if(q1Thom->getYieldOffset() > _tol){
Msg::Info("Change yield surface to Gurson fG =%e",q1Thom->getYieldOffset());
double yieldGurson = _mlawGrowth->yieldFunction(kcorEq,pcor,R,yieldfV,q0,q1,T);
q1Thom->getRefToYieldOffset() = yieldGurson;
if(yieldGurson > _tol){
Msg::Info("Change yield surface to Gurson fG =%e",yieldGurson);
q1Thom->getRefToCoalescenceActiveFlag() = false; // Gurson will be used at the next time step
q1Thom->getRefToAccelerateRate() = 1.0;
}
......@@ -520,9 +523,10 @@ void mlawNonLocalPorousCoupledLaw::checkCoalescence(IPNonLocalPorosity* q1, cons
}
else{
// If Gurson was/is used for this time step : check if Thomason is more restrictive
q1Thom->getRefToYieldOffset() = _mlawCoales->yieldFunction(kcorEq,pcor,R,yieldfV,q0,q1,T);
if(q1Thom->getYieldOffset() > _tol ){
Msg::Info("Change yield surface to Thomason fT = %e",q1Thom->getYieldOffset());
double yieldThomason = _mlawCoales->yieldFunction(kcorEq,pcor,R,yieldfV,q0,q1,T);
q1Thom->getRefToYieldOffset() = yieldThomason;
if(yieldThomason > _tol ){
Msg::Info("Change yield surface to Thomason fT = %e",yieldThomason);
q1Thom->getRefToCoalescenceActiveFlag() = true; // Thomason will be used at the next time step
q1Thom->getRefToAccelerateRate() = 1.0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment