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

Broyden.h

Go to the documentation of this file.
00001 /* ****************************************************************** **
00002 **    OpenSees - Open System for Earthquake Engineering Simulation    **
00003 **          Pacific Earthquake Engineering Research Center            **
00004 **                                                                    **
00005 **                                                                    **
00006 ** (C) Copyright 1999, The Regents of the University of California    **
00007 ** All Rights Reserved.                                               **
00008 **                                                                    **
00009 ** Commercial use of this program without express permission of the   **
00010 ** University of California, Berkeley, is strictly prohibited.  See   **
00011 ** file 'COPYRIGHT'  in main directory for information on usage and   **
00012 ** redistribution,  and for a DISCLAIMER OF ALL WARRANTIES.           **
00013 **                                                                    **
00014 ** Developed by:                                                      **
00015 **   Frank McKenna (fmckenna@ce.berkeley.edu)                         **
00016 **   Gregory L. Fenves (fenves@ce.berkeley.edu)                       **
00017 **   Filip C. Filippou (filippou@ce.berkeley.edu)                     **
00018 **                                                                    **
00019 ** ****************************************************************** */
00020                                                                         
00021 // $Revision: 1.1 $
00022 // $Date: 2001/06/14 05:17:41 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/analysis/algorithm/equiSolnAlgo/Broyden.h,v $
00024                                                                         
00025 #ifndef Broyden_h
00026 #define Broyden_h
00027 
00028 // File: ~/OOP/analysis/algorithm/Broyden.h 
00029 // 
00030 // Written: Ed C++ Love
00031 // Created: 04/01
00032 
00033 // Description: This file contains the class definition for
00034 // Broyden.  Broyden is a class which performs the Broyden
00035 // solution algorihm in solving the equations.
00036 // No member functions are declared as virtual as 
00037 // it is not expected that this class will be subclassed.
00038 // 
00039 // What: "@(#)Broyden.h, revA"
00040 
00041 #include <EquiSolnAlgo.h>
00042 #include <Vector.h>
00043 #include <IncrementalIntegrator.h>
00044 #include <LinearSOE.h> 
00045 
00047 class Broyden: public EquiSolnAlgo
00048 {
00049   public:
00050 
00052     Broyden(int tangent = CURRENT_TANGENT, int n = 10 );    
00053 
00055     Broyden(ConvergenceTest &theTest, int tangent = CURRENT_TANGENT, int n = 10 );
00056 
00058     ~Broyden();
00059 
00061     int solveCurrentStep(void);    
00062 
00064     void setTest(ConvergenceTest &theNewTest);
00065 
00067     ConvergenceTest *getTest(void);     
00068     
00070     virtual int sendSelf(int commitTag, Channel &theChannel);
00072     virtual int recvSelf(int commitTag, Channel &theChannel, 
00073     FEM_ObjectBroker &theBroker);
00074 
00076     void Print(ostream &s, int flag =0);    
00077     
00078   protected:
00079     
00080   private:
00081 
00083     ConvergenceTest *theTest;
00084 
00086     ConvergenceTest *localTest ;
00087 
00089     int tangent ;
00090 
00092     int numberLoops ; 
00093 
00094     Vector **s ;  
00095 
00096     Vector **z ;  
00097 
00099     Vector *residOld ;  
00100     Vector *residNew ;
00101 
00103     Vector *du ; 
00104 
00105     Vector *temp ; 
00106 
00107     void BroydenUpdate( IncrementalIntegrator *theIntegrator,
00108                         LinearSOE *theSOE,
00109    Vector &du, 
00110    int count ) ;
00111   
00112 };
00113 
00114 #endif
00115 
00116 
00117 ÿ
Copyright Contact Us