Rheolef  7.2
an efficient C++ finite element environment
yield_slip_damped_newton.cc

The yield slip problem by the damped Neton method.

The yield slip problem by the damped Neton method

#include "rheolef.h"
using namespace std;
using namespace rheolef;
#include "yield_slip.h"
int main(int argc, char**argv) {
environment rheolef (argc,argv);
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;
domain boundary = omega["boundary"];
yield_slip F (S, n, Cf, r, omega, boundary, approx);
field beta_h = F.initial();
size_t max_iter = 10000;
int status = damped_newton (F, beta_h, tol, max_iter, &derr);
field uh, lambda_h;
F.post (beta_h, uh, lambda_h);
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;
}
see the Float page for the full documentation
see the field page for the full documentation
see the geo page for the full documentation
see the catchmark page for the full documentation
Definition: catchmark.h:67
see the environment page for the full documentation
Definition: environment.h:121
field initial() const
Definition: yield_slip2.icc:52
void post(const field &beta_h, field &uh, field &lambda_h) const
Definition: yield_slip2.icc:56
This file is part of Rheolef.
int damped_newton(const Problem &P, const Preconditioner &T, Field &u, Real &tol, Size &max_iter, odiststream *p_derr=0)
see the damped_newton page for the full documentation
STL namespace.
rheolef - reference manual
Float epsilon
The yield slip problem – class header.
int main(int argc, char **argv)