1#ifndef MODEL_INTERFACE_CRACK_H
2#define MODEL_INTERFACE_CRACK_H
5#include <AMReX_AmrCore.H>
33 case WSQUARE:
return (1.-c)*(1.-c);
35 case WMULTIWELL2:
return (1.+c)*(1.+c)*(1.-c)*(1.-c);
36 case WPHI4C3:
return 1. - 4.*c*c*c + 3.*c*c*c*c;
37 case WU:
return 2.0*(1.-c) - (1.-c)*(1.-c);
39 default:
return (1.-c)*(1.-c);
49 case GPHI4C3:
return 4.*c*c*c - 3.*c*c*c*c;
50 case GSQUAREP:
return std::pow(c,2.*p);
80 case WSQUARE:
return -2.*(1.-c);
81 case WMULTIWELL:
return 4.*c*c*c - 6.*c*c + 2.*c;
83 case WPHI4C3:
return 12.*(c-1.)*c*c;
84 case WU:
return -2.*c;
86 default:
return -2.*(1.-c);
95 case GMULTIWELL:
return 4.*c*c*c - 12.*c*c + 8.*c;
96 case GPHI4C3:
return 12.*(1.-c)*c*c;
97 case GSQUAREP:
return 2.*p*std::pow(c,2*p -1.);
113 return (2.0*c*Q_c - c*c*dQ_c) / ((c*c + Q_c)*(c*c + Q_c));
126 if (c < 1.e-5) c = 1.e-5;
132 default:
Util::Abort(
INFO,
"Dissipation function type must be specified");
146 std::ofstream outFile;
147 outFile.open(filename);
149 for(amrex::Real theta=0; theta<2*
pi; theta=theta+dTheta)
151 outFile << theta <<
" " <<
Gc(theta) << std::endl;
void SetPFCZMConstants(const Set::Scalar a_pf_czm_order, const Set::Scalar a_pf_czm_a0)
virtual AMREX_FORCE_INLINE Set::Scalar Dw_phi(Set::Scalar c, Set::Scalar)
virtual AMREX_FORCE_INLINE Set::Scalar Dg_phi(Set::Scalar c, Set::Scalar p=0.)
void SetWType(const WType a_type)
virtual Set::Scalar Gc(Set::Scalar theta)=0
void SetDuctileExponent(const Set::Scalar m)
virtual AMREX_FORCE_INLINE Set::Scalar Dg2_phi(Set::Scalar c)
void ExportToFile(std::string filename, amrex::Real dTheta)
static constexpr Set::Scalar pi
virtual Set::Scalar Mobility(Set::Scalar theta)=0
virtual AMREX_FORCE_INLINE Set::Scalar w_phi(Set::Scalar c, Set::Scalar)
void SetGType(const GType a_type)
virtual Set::Scalar DDGc(Set::Scalar theta)=0
virtual Set::Scalar DrivingForceThreshold(Set::Scalar theta)=0
virtual Set::Scalar DGc(Set::Scalar theta)=0
virtual AMREX_FORCE_INLINE Set::Scalar g_phi(Set::Scalar c, Set::Scalar p=0.)
Set::Scalar m_pf_czm_order
void SetG2Type(const G2Type)
virtual Set::Scalar Zeta(Set::Scalar theta)=0
void Abort(const char *msg)