Loading...
Searching...
No Matches
yield_slip_augmented_lagrangian.cc

The yield slip problem by the augmented Lagrangian method.

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
rheolef::catchmark
see the catchmark page for the full documentation
Definition catchmark.h:67
rheolef::environment
see the environment page for the full documentation
Definition environment.h:121
space
see the space page for the full documentation
test
see the test page for the full documentation
main
int main()
Definition field2bb.cc:58
rheolef
This file is part of Rheolef.
Definition compiler_eigen.h:39
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:211
std
STL namespace.
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
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