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.1.1 $
00022 // $Date: 2000/09/15 08:23:16 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/analysis/algorithm/domainDecompAlgo/DomainDecompAlgo.h,v $
00024
00025
00026 // File: ~/OOP/analysis/algorithm/DomainDecompAlgo.h
00027 //
00028 // Written: fmk
00029 // Created: 10/96
00030 // Revision: A
00031 //
00032
00033 // Description: This file contains the class definition for
00034 // DomainDecompAlgo. DomainDecompAlgo is an abstract base class,
00035 // i.e. no objects of it's type can be created. Its subclasses deifine
00036 // the sequence of operations to be performed in the analysis by static
00037 // equilibrium of a finite element model.
00038 //
00039 // What: "@(#)DomainDecompAlgo.h, revA"
00040
00041 #ifndef DomainDecompAlgo_h
00042 #define DomainDecompAlgo_h
00043
00044 #include <SolutionAlgorithm.h>
00045
00046 #include <AnalysisModel.h>
00047 #include <IncrementalIntegrator.h>
00048 #include <LinearSOE.h>
00049 #include <DomainSolver.h>
00050 #include <DomainDecompAnalysis.h>
00051 #include <Subdomain.h>
00052
00062 class DomainDecompAlgo: public SolutionAlgorithm
00063 {
00064 public:
00069 DomainDecompAlgo();
00070
00074 ~DomainDecompAlgo();
00075
00076
00078 int solveCurrentStep(void);
00079
00083 void setLinks(AnalysisModel &theModel,
00084
00085 IncrementalIntegrator &theIntegrator,
00086 LinearSOE &theSOE,
00087 DomainSolver &theSolver,
00088 Subdomain &theSubdomain);
00089
00093 int sendSelf(int cTag, Channel &theChannel);
00094
00098 int recvSelf(int cTag, Channel &theChannel,
00099
00100 FEM_ObjectBroker &theBroker);
00101
00102 protected:
00103
00104 private:
00106 AnalysisModel *theModel;
00107
00109 IncrementalIntegrator *theIntegrator;
00111 LinearSOE *theLinearSOE;
00113 DomainSolver *theSolver;
00115 Subdomain *theSubdomain;
00116 };
00117
00118 #endif
00119
00120