Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

NewtonRaphson Class Reference

#include <NewtonRaphson.h>

Inheritance diagram for NewtonRaphson::

EquiSolnAlgo SolutionAlgorithm MovableObject List of all members.

Public Methods

 NewtonRaphson (int tangent=CURRENT_TANGENT)
 NewtonRaphson (ConvergenceTest &theTest, int tangent=CURRENT_TANGENT)
 ~NewtonRaphson ()
int solveCurrentStep (void)
void setTest (ConvergenceTest &theNewTest)
ConvergenceTestgetTest (void)
virtual int sendSelf (int commitTag, Channel &theChannel)
virtual int recvSelf (int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker)
void Print (ostream &s, int flag=0)

Detailed Description

The NewtonRaphson class is an algorithmic class which obtains a solution to a non-linear system using the Newton-Raphson iteration scheme. The iteration scheme is based on a Taylor expansion of the non-linear system of equations about an approximate solution : \begin{equation} \R(U) = \R(U^{(i)}) + \left[ {\frac{
tial \R}{\partial U} \vert}_{U^{(i)}}\right]
\left( U - U^{(i)} \right) \end{equation}

which can be expressed as: \begin{equation} \ K^{(i)} \Delta U^{(i)} = \R(U^{(i)}) \end{equation} which is solved for to give approximation for . To start the iteration , i.e. the current trial response quantities are chosen as initial response quantities. To stop the iteration, a test must be performed to see if convergence has been achieved at each iteration. Each NewtonRaphson object is associated with a ConvergenceTest object. It is this object which determines if convergence has been achieved. \

Definition at line 77 of file NewtonRaphson.h.


Constructor & Destructor Documentation

NewtonRaphson::NewtonRaphson ( int tangent = CURRENT_TANGENT )
 

The constructor takes as an argument the ConvergenceTest object {theTest}, the object which is used at the end of each iteration to determine if convergence has been obtained. The integer {EquiALGORITHM\_TAGS\_NewtonRaphson} (defined in classTags.h\form#24) is passed to the EquiSolnAlgo classes constructor.

Definition at line 55 of file NewtonRaphson.cpp.

NewtonRaphson::NewtonRaphson ( ConvergenceTest & theTest,
int tangent = CURRENT_TANGENT )
 

Provided for FEM\_ObjectBroker to instantiate a blank object with a class tag of EquiALGORITHM\_TAGS\_NewtonRaphson is passed. {recvSelf()} must be invoked on this object.

Definition at line 63 of file NewtonRaphson.cpp.

NewtonRaphson::~NewtonRaphson ( )
 

Does nothing.

Definition at line 71 of file NewtonRaphson.cpp.


Member Function Documentation

void NewtonRaphson::Print ( ostream & s,
int flag = 0 ) [virtual]
 

Reimplemented from EquiSolnAlgo.

Definition at line 221 of file NewtonRaphson.cpp.

ConvergenceTest * NewtonRaphson::getTest ( void ) [virtual]
 

Reimplemented from EquiSolnAlgo.

Definition at line 163 of file NewtonRaphson.cpp.

int NewtonRaphson::recvSelf ( int commitTag,
Channel & theChannel,
FEM_ObjectBroker & theBroker ) [virtual]
 

This is a pure virtual method, one must be written for each instantiable subclass of MovableObject. Each object has to receive the data needed to be able to recreate itself in the new process after it has been sent through {theChannel}. If the object is an aggregation containing other objects, new objects of the correct type can be constructed using {theBroker}. To return if successful or a if not.

Reimplemented from MovableObject.

Definition at line 192 of file NewtonRaphson.cpp.

int NewtonRaphson::sendSelf ( int commitTag,
Channel & theChannel ) [virtual]
 

This is a pure virtual method, one must be written for each instantiable subclass of MovableObject. Each object has to send the data needed to be able to reproduce that object in a remote process. The object uses the methods provided by {theChannel} object to send the data to another channel at the remote actor, the address of the channel is set before this method is called. An object of similar type at the remote actor is invoked with a {receiveSelf()} to receive the data. Returns if successful (successful in that the data got to the channel), or a if no data was sent.

Reimplemented from MovableObject.

Definition at line 169 of file NewtonRaphson.cpp.

void NewtonRaphson::setTest ( ConvergenceTest & theNewTest ) [virtual]
 

A method to set the ConvergenceTest object associated with the Algorithm to be {theTest}.

Reimplemented from EquiSolnAlgo.

Definition at line 78 of file NewtonRaphson.cpp.

int NewtonRaphson::solveCurrentStep ( void ) [virtual]
 

When invoked the object first sets itself as the EquiSolnAlgo object that the ConvergenceTest is testing and then it performs the Newton-Raphson iteration algorithm: \begin{tabbing} while \= \+ while \= \kill theTest- start()

Reimplemented from EquiSolnAlgo.

Definition at line 86 of file NewtonRaphson.cpp.


The documentation for this class was generated from the following files:
Copyright Contact Us