yield_slip_augmented_lagrangian.cc

The yield slip problem by the augmented Lagrangian method

#include "rheolef.h"
using namespace std;
using namespace rheolef;
#include "yield_slip_augmented_lagrangian.icc"
#include "poisson_robin.icc"
int main(int argc, char**argv) {
environment rheolef (argc,argv);
dlog << noverbose;
geo omega (argv[1]);
string approx = (argc > 2) ? argv[2] : "P1";
Float S = (argc > 3) ? atof(argv[3]) : 0.6;
Float n = (argc > 4) ? atof(argv[4]) : 1;
Float Cf = (argc > 5) ? atof(argv[5]) : 1;
Float r = (argc > 6) ? atof(argv[6]) : 1;
Float tol = 1e3*numeric_limits<Float>::epsilon();
size_t max_iter = 100000;
space Xh (omega, approx);
test v (Xh);
field lh = integrate(v);
field uh = poisson_robin (Cf, omega["boundary"], lh);
space Wh (omega["boundary"], Xh.get_approx());
field lambda_h = Cf*uh["boundary"];
int status = yield_slip_augmented_lagrangian(S, n, Cf, omega["boundary"],
lh, lambda_h, uh, tol, max_iter, r);
dout << setprecision(numeric_limits<Float>::digits10)
<< catchmark("S") << S << endl
<< catchmark("n") << n << endl
<< catchmark("Cf") << Cf << endl
<< catchmark("r") << r << endl
<< catchmark("u") << uh
<< catchmark("lambda") << lambda_h;
return status;
}
lh
field lh(Float epsilon, Float t, const test &v)
Definition: burgers_diffusion_operators.icc:25
Float
see the Float page for the full documentation
field
see the field page for the full documentation
geo
see the geo page for the full documentation
space
see the space page for the full documentation
test
see the test page for the full documentation
mkgeo_ball.n
int n
Definition: mkgeo_ball.sh:150
mkgeo_contraction.status
status
Definition: mkgeo_contraction.sh:290
rheolef
This file is part of Rheolef.
Definition: compiler_eigen.h:37
rheolef::integrate
std::enable_if< details::is_field_expr_v2_nonlinear_arg< Expr >::value &&! is_undeterminated< Result >::value, Result >::type integrate(const geo_basic< T, M > &omega, const Expr &expr, const integrate_option &iopt, Result dummy=Result())
see the integrate page for the full documentation
Definition: integrate.h:202
poisson_robin.icc
The Poisson problem with Robin boundary condition – solver function.
poisson_robin
field poisson_robin(Float Cf, const geo &boundary, const field &lh)
Definition: poisson_robin.icc:25
rheolef.h
rheolef - reference manual
epsilon
Float epsilon
Definition: transmission_error.cc:25
main
int main(int argc, char **argv)
Definition: yield_slip_augmented_lagrangian.cc:30
yield_slip_augmented_lagrangian.icc
The yield slip problem by the augmented Lagrangian method – solver function.
yield_slip_augmented_lagrangian
int yield_slip_augmented_lagrangian(Float S, Float n, Float Cf, geo boundary, field lh, field &lambda_h, field &uh, Float tol, size_t max_iter, Float r)
Definition: yield_slip_augmented_lagrangian.icc:26