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

ModifiedNewton Class Reference

#include <ModifiedNewton.h>

Inheritance diagram for ModifiedNewton::

EquiSolnAlgo SolutionAlgorithm MovableObject List of all members.

Public Methods

 ModifiedNewton (int tangent=CURRENT_TANGENT)
 ModifiedNewton (ConvergenceTest &theTest, int tangent=CURRENT_TANGENT)
 ~ModifiedNewton ()
int solveCurrentStep (void)
ConvergenceTestgetTest (void)
void setTest (ConvergenceTest &theNewTest)
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 ModifiedNewton class is an algorithmic class which obtains a solution to a non-linear system using the modified Newton-Raphson iteration scheme. The Newton-Rapson 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. \

in the modified version the tangent is formed only once, i.e \begin{equation} \ K^{(1)} \Delta U^{(i)} = \R(U^{(i)}) \end{equation}

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 83 of file ModifiedNewton.h.


Constructor & Destructor Documentation

ModifiedNewton::ModifiedNewton ( int tangent = CURRENT_TANGENT )
 

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

Definition at line 51 of file ModifiedNewton.cpp.

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

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

Definition at line 59 of file ModifiedNewton.cpp.

ModifiedNewton::~ModifiedNewton ( )
 

Does nothing.

Definition at line 67 of file ModifiedNewton.cpp.


Member Function Documentation

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

Reimplemented from EquiSolnAlgo.

Definition at line 211 of file ModifiedNewton.cpp.

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

Reimplemented from EquiSolnAlgo.

Definition at line 154 of file ModifiedNewton.cpp.

int ModifiedNewton::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 183 of file ModifiedNewton.cpp.

int ModifiedNewton::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 160 of file ModifiedNewton.cpp.

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

Reimplemented from EquiSolnAlgo.

Definition at line 73 of file ModifiedNewton.cpp.

int ModifiedNewton::solveCurrentStep ( void ) [virtual]
 

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

Reimplemented from EquiSolnAlgo.

Definition at line 79 of file ModifiedNewton.cpp.


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