13 std::string& topography_string,
14 int coarsestMeshLevel,
15 double coarsestMeshSize,
16 double maxAdaptiveDepth,
17 tarch::la::Vector<DIMENSIONS,double> _domainOffset,
18 tarch::la::Vector<DIMENSIONS,double> _domainSize,
23 coarsestMeshLevel, coarsestMeshSize, maxAdaptiveDepth,
24 _domainOffset, _domainSize,
36 std::string& filename_rupture_model
39 easi::YAMLParser parser(3);
41 model = parser.parse(filename_rupture_model);
44 easi::ArraysAdapter<T> adapter;
45 adapter.addBindingPoint(
"mu_s",&
mu_s);
46 adapter.addBindingPoint(
"mu_d",&
mu_d);
47 adapter.addBindingPoint(
"d_c" ,&
S_c);
49 adapter.addBindingPoint(
"f_cy",&
f_cy);
50 adapter.addBindingPoint(
"f_wy",&
f_wy);
51 adapter.addBindingPoint(
"f_cz",&
f_cz);
52 adapter.addBindingPoint(
"f_wz",&
f_wz);
54 easi::Query query(1,3);
60 model->evaluate(query,adapter);
76 toolbox::curvi::Root* root = this->
interface->getRoot();
77 toolbox::curvi::InnerNode* fault_node =
static_cast<toolbox::curvi::InnerNode*
>(root->getChild());
82 double fault_center[3];
84 fault_center[toolbox::curvi::Coordinate::Y] = this->
domainOffset[1] + domainSize[1];
85 fault_center[toolbox::curvi::Coordinate::Z] = this->
domainOffset[2] + domainSize[2];
89 toolbox::curvi::Coordinate fault_coords[2];
90 fault_node->getCoordinates(fault_coords);
91 T xi = fault_center[(2-fault_coords[0])];
92 T mu = fault_center[(2-fault_coords[1])];
99 + fault_node->evalPerturbation(xi, mu);
112 const T*
const QL,
const T*
const QR,
113 const double t,
const double dt,
114 const tarch::la::Vector<DIMENSIONS, double>& facePos,
115 const tarch::la::Vector<DIMENSIONS, double>&
cellSize,
123 T& sxx, T& syy, T& szz,
124 T& sxy, T& sxz, T& syz,
127 T& T0_n, T& T0_m, T& T0_l,
128 double*
const x,
double t,
129 T*
const l, T*
const m, T*
const n);
130 T
boxcar(T& f,
double x, T w);
131 void tauStrength(T& tau_str, T sigma_n, T S,
double*
const x,
double t);
134 T& Vel, T& tau1, T& tau2,
136 T eta, T tau_str, T sigma_n);
141 T& vn_hat_p, T& vn_hat_m,
142 T& Tn_hat_p, T& Tn_hat_m,
146 T& vm_hat_p, T& vm_hat_m,
147 T& Tm_hat_p, T& Tm_hat_m,
151 T& vl_hat_p, T& vl_hat_m,
152 T& Tl_hat_p, T& Tl_hat_m,
153 T*
const l, T*
const m, T*
const n,
154 double*
const x, T S,
double t);
const tarch::la::Vector< DIMENSIONS, double > cellSize
void slipWeakening(T &v1, T &v2, T &Vel, T &tau1, T &tau2, T phi_1, T phi_2, T eta, T tau_str, T sigma_n)
toolbox::curvi::Coordinate fault_normal
T f_cy
These define the position of the area with frictional cohesion.
T boxcar(T &f, double x, T w)
void slipWeakeningFriction(T vn_p, T vn_m, T Tn_p, T Tn_m, T zn_p, T zn_m, T &vn_hat_p, T &vn_hat_m, T &Tn_hat_p, T &Tn_hat_m, T vm_p, T vm_m, T Tm_p, T Tm_m, T zl_p, T zl_m, T &vm_hat_p, T &vm_hat_m, T &Tm_hat_p, T &Tm_hat_m, T vl_p, T vl_m, T Tl_p, T Tl_m, T zm_p, T zm_m, T &vl_hat_p, T &vl_hat_m, T &Tl_hat_p, T &Tl_hat_m, T *const l, T *const m, T *const n, double *const x, T S, double t)
void preStress(T &T0_n, T &T0_m, T &T0_l, double *const x, double t, T *const l, T *const m, T *const n)
ContextDynamicRupture(std::string &topography_string, int coarsestMeshLevel, double coarsestMeshSize, double maxAdaptiveDepth, tarch::la::Vector< DIMENSIONS, double > _domainOffset, tarch::la::Vector< DIMENSIONS, double > _domainSize, T *_nodes, T *_dudx)
void initialStressTensor(T &sxx, T &syy, T &szz, T &sxy, T &sxz, T &syz, double *const x)
double domainSize[DIMENSIONS]
void initRuptureModel(std::string &filename_rupture_model)
void tauStrength(T &tau_str, T sigma_n, T S, double *const x, double t)