MinUnbalDispNorm.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.3 $
00022 // $Date: 2003/02/14 23:00:49 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/analysis/integrator/MinUnbalDispNorm.h,v $
00024                                                                         
00025                                                                         
00026 // File: ~/analysis/integrator/MinUnbalDispNorm.h
00027 // 
00028 // Written: fmk 
00029 // Created: 07/99
00030 // Revision: A
00031 //
00032 // Description: This file contains the class definition for MinUnbalDispNorm.
00033 // MinUnbalDispNorm is an algorithmic class for perfroming a static analysis
00034 // using the minimum unbalanced displacement norm (Chan IJNME 26(2657:2669)1988
00035 //
00036 // What: "@(#) MinUnbalDispNorm.h, revA"
00037 
00038 #ifndef MinUnbalDispNorm_h
00039 #define MinUnbalDispNorm_h
00040 
00041 #include <StaticIntegrator.h>
00042 
00043 class LinearSOE;
00044 class AnalysisModel;
00045 class FE_Element;
00046 class Vector;
00047 
00048 #define SIGN_LAST_STEP      1
00049 #define CHANGE_DETERMINANT  2
00050 
00051 class MinUnbalDispNorm : public StaticIntegrator
00052 {
00053   public:
00054     MinUnbalDispNorm(double lambda1, int specNumIterStep, 
00055                      double dlambda1min, double dlambda1max,
00056                      int signFirstStepMethod = SIGN_LAST_STEP);
00057 
00058     ~MinUnbalDispNorm();
00059 
00060     int newStep(void);    
00061     int update(const Vector &deltaU);
00062     int domainChanged(void);
00063     
00064     int sendSelf(int commitTag, Channel &theChannel);
00065     int recvSelf(int commitTag, Channel &theChannel, 
00066                          FEM_ObjectBroker &theBroker);
00067 
00068     void Print(OPS_Stream &s, int flag =0);    
00069     
00070   protected:
00071     
00072   private:
00073     double dLambda1LastStep;                  // dLambda1 at step (i-1)
00074     double specNumIncrStep, numIncrLastStep;    // Jd & J(i-1) 
00075 
00076     Vector *deltaUhat, *deltaUbar, *deltaU, *deltaUstep; // vectors for disp measures
00077     Vector *phat;                                        // the reference load vector
00078 
00079     double deltaLambdaStep, currentLambda; // dLambda(i) & current value of lambda  
00080     int signLastDeltaLambdaStep;           // sign of dLambda(i-1)
00081     double dLambda1min, dLambda1max;       // min & max values for dlambda1 at step (i) 
00082     double signLastDeterminant;
00083     int signFirstStepMethod;
00084 };
00085 
00086 #endif
00087 

Generated on Mon Oct 23 15:04:59 2006 for OpenSees by doxygen 1.5.0