Loading...
Searching...
No Matches
d_projection_dx.h

The projection for yield-stress rheology – its derivative.

The projection for yield-stress rheology – its derivative

#include "projection.h"
struct d_projection_dx {
Float operator() (const Float& x) const {
if (fabs(x) <= a) return 0;
if (n == 1) return 1/(c + r);
if (r == 0) return pow(fabs(x)-a,-1+1/n)/(n*pow(c,1/n));
return 1/(r + n*c*pow(_phi(fabs(x)-a),-1+n));
}
d_projection_dx (Float a1, Float n1=1, Float c1=1, Float r1=0)
: a(a1), n(n1), c(c1), r(r1), _phi(n1,c1,r1) {}
Float a,n,c,r;
phi _phi;
};
Float
see the Float page for the full documentation
projection.h
The projection for yield-stress rheologies e.g. the yield slip problem.
d_projection_dx
Definition d_projection_dx.h:26
d_projection_dx::a
Float a
Definition d_projection_dx.h:35
d_projection_dx::_phi
phi _phi
Definition d_projection_dx.h:36
d_projection_dx::c
Float c
Definition d_projection_dx.h:35
d_projection_dx::n
Float n
Definition d_projection_dx.h:35
d_projection_dx::r
Float r
Definition d_projection_dx.h:35
d_projection_dx::operator()
Float operator()(const Float &x) const
Definition d_projection_dx.h:27
phi
Definition phi.h:25