SIFEL/MEFEL/SRC/newtonraph.cpp File Reference

#include <math.h>
#include <string.h>
#include <stdlib.h>
#include "newtonraph.h"
#include "nssolver.h"
#include "backupsol.h"
#include "global.h"
#include "globmat.h"
#include "mechprint.h"
#include "gmatrix.h"
#include "gtopology.h"
#include "mathem.h"
#include "vector.h"
#include "matrix.h"

Go to the source code of this file.

Functions

double gnewton_raphson (long lcid, nonlinman *nlman, double *ra, double *fa, double *fc, double *fp, long li, double ilambda, answertype outres)
double gnewton_raphson2 (long lcid, nonlinman *nlman, double *ra, double *fa, double *fc, double *fp, double *flc, double *flp, long li, double ilambda, answertype outres)
double gnewton_raphson_one_step (long lcid, nonlinman *nlman, double *fa, double *ra, double *fb, double *dr, double *fi, double &dtr, long istep, long &j, long li)

Function Documentation

double gnewton_raphson ( long  lcid,
nonlinman nlman,
double *  ra,
double *  fa,
double *  fc,
double *  fp,
long  li,
double  ilambda,
answertype  outres 
)

Function solves system of nonlinear algebraic equations by Newton-Raphson method for the given load case. Solved system does not contain time variable.

Parameters:
lcid - load case id
nlman - pointer to structure conatining setup of the solver
ra - vector of attained displacements
fa - attained load vector
fc - vector of constant load
fp - vector of proportional load
li - initial value of step id (default is 0)
ilambda - initial value of load coefficient (default is 0)
outres - flag for performing of output of results (if yes -> print_step procedure is called for the each step)
Returns:
The function returns reached lambda parameter.

Created by JK, 16.8.2001 Rewritten by Tomas Koudelka, 08.2011

Definition at line 41 of file newtonraph.cpp.

References addmultv(), addv(), assemble_attained_load_vector(), assemble_stiffness_matrix(), check_divergency(), nonlinman::check_lambdar, compute_req_val(), copyv(), probdesc::dlambda, nonlinman::errnr, fillm(), fillv(), Gtm, probdesc::hdbcont, nonlinman::incrnr, internal_forces(), probdesc::istep, probdesc::jstep, probdesc::lambda, nonlinman::lambdar, nonlinman::maxincrnr, memset(), Mespr, nonlinman::minincrnr, Mm, Mp, Ndofm, nonlinman::niilnr, nonlinman::ninr, normv(), off, on, probdesc::otherstate, Out, print_err(), print_flush(), print_step(), print_step_forced(), hdbcontr::save_stat(), Smat, slesolv::solve_system(), solver_save(), probdesc::ssle, probdesc::strainstate, probdesc::stressstate, subv(), mechmat::updateipval(), yes, and probdesc::zero.

double gnewton_raphson2 ( long  lcid,
nonlinman nlman,
double *  ra,
double *  fa,
double *  fc,
double *  fp,
double *  flc,
double *  flp,
long  li,
double  ilambda,
answertype  outres 
)

Function solves system of nonlinear algebraic equations by Newton-Raphson method for the given load case. Solved system does not contain time variable.

Parameters:
lcid - load case id
nlman - pointer to structure conatining setup of the solver
ra - vector of attained displacements
fa - attained load vector
fc - vector of constant load
fp - vector of proportional load
flc - constant component of load vector due to forces
flp - proportional component of load vector due to forces
li - initial value of load/time step id (default is 0)
ilambda - initial value of load coefficient (default is 0)
outres - flag for performing of output of results (if yes -> print_step procedure is called for the each step)
Returns:
The function returns reached lambda parameter.

Created by JK, 16.8.2001 Rewritten by Tomas Koudelka, 11.2012

Definition at line 357 of file newtonraph.cpp.

References addmultv(), assemble_attained_load_vector(), nonlinman::check_lambdar, cmulv(), compute_req_val(), copyv(), probdesc::dlambda, nonlinman::errnr, gnewton_raphson_one_step(), probdesc::hdbcont, nonlinman::incrnr, probdesc::istep, probdesc::jstep, probdesc::lambda, nonlinman::lambdar, nonlinman::maxincrnr, memset(), Mespr, nonlinman::minincrnr, Mm, Mp, Ndofm, nonlinman::niilnr, nonlinman::ninr, off, on, probdesc::otherstate, print_err(), print_flush(), print_step(), print_step_forced(), hdbcontr::save_stat(), solver_save(), probdesc::strainstate, probdesc::stressstate, mechmat::updateipval(), yes, and probdesc::zero.

Referenced by nonlinear_solver().

double gnewton_raphson_one_step ( long  lcid,
nonlinman nlman,
double *  fa,
double *  ra,
double *  fb,
double *  dr,
double *  fi,
double &  dtr,
long  istep,
long &  j,
long  li 
)

Function performs calculation of one load/time step of the Newton-Raphson method for the given load case. Solved equation system does not contain time variable.

Parameters:
lcid - load case id
nlman - pointer to structure conatining setup of the solver
fa - attained load vector
ra - vector of attained displacements
fb - residual vector or load vector increment - righthand side vector
dr - vector of displacement increment - lefthand side vector
fi - vector of internal forces
dtr - the minimum ratio of required time step size to the actual one required by material models (output)
istep - time/load step id
j - inner loop step id (output parameter, set to -1 if no inner loop was performed)
li - initial value of time/load step id
Returns:
The function returns reached norm of residual vector.

Created by Tomas Koudelka, 11.2012

Definition at line 628 of file newtonraph.cpp.

References addv(), assemble_stiffness_matrix(), check_divergency(), mechmat::dstep_red_mat(), nonlinman::errnr, fillm(), fillv(), Gtm, internal_forces(), probdesc::jstep, Mm, Mp, Ndofm, nonlinman::niilnr, normv(), Out, Smat, slesolv::solve_system(), probdesc::ssle, and subv().

Referenced by gnewton_raphson2(), and one_step().


Generated by  doxygen 1.6.2