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

FEM_ObjectBroker.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.1.1 $
00022 // $Date: 2000/09/15 08:23:16 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/actor/objectBroker/FEM_ObjectBroker.h,v $
00024                                                                         
00025                                                                         
00026 // File: ~/actor/broker/FEM_ObjectBroker.h
00027 //
00028 // Written: fmk
00029 // Created: Fri Sept 20 12:27:47: 1996
00030 // Revision: A
00031 //
00032 // Purpose: This file contains the class definition for FEM_ObjectBroker.
00033 // FEM_ObjectBroker is is an object broker class for the finite element
00034 // method. All methods are virtual to allow for subclasses; which can be
00035 // used by programmers when introducing new subclasses of the main objects.
00036 //
00037 // What: "@(#) FEM_ObjectBroker.h, revA"
00038 
00039 #ifndef FEM_ObjectBroker_h
00040 #define FEM_ObjectBroker_h
00041 
00042 #include<ObjectBroker.h>
00043 
00044 #include <Element.h>
00045 #include <Node.h>
00046 #include <MP_Constraint.h>
00047 #include <SP_Constraint.h>
00048 #include <NodalLoad.h>
00049 #include <ElementalLoad.h>
00050 #include <LoadPattern.h>
00051 #include <TimeSeries.h>
00052 
00053 #include <Matrix.h>
00054 #include <Vector.h>
00055 #include <ID.h>
00056 #include <Subdomain.h>
00057 #include <ConstraintHandler.h>
00058 #include <DOF_Numberer.h>   
00059 #include <AnalysisModel.h>    
00060 #include <EquiSolnAlgo.h>
00061 #include <DomainDecompAlgo.h>
00062 #include <StaticIntegrator.h>
00063 #include <TransientIntegrator.h>
00064 #include <IncrementalIntegrator.h>
00065 #include <LinearSOE.h>
00066 #include <DomainSolver.h>
00067 #include <DomainDecompositionAnalysis.h>
00068 #include <LinearSOESolver.h>
00069 #include <PartitionedModelBuilder.h>
00070 
00071 #include <CrdTransf2d.h>
00072 #include <CrdTransf3d.h>
00073 
00074 #include <UniaxialMaterial.h>
00075 #include <SectionForceDeformation.h>
00076 #include <NDMaterial.h>
00077 #include <Fiber.h>
00078 
00079 #include <ConvergenceTest.h>
00080 #include <SectionForceDeformation.h>
00081 #include <GroundMotion.h>
00082 
00097 class FEM_ObjectBroker
00098 {
00099   public:
00101     FEM_ObjectBroker();
00102 
00104     virtual ~FEM_ObjectBroker();
00105 
00106     
00108     virtual PartitionedModelBuilder *
00109  getPtrNewPartitionedModelBuilder(Subdomain &theSub,
00110       int classTag);
00112     virtual GraphNumberer *getPtrNewGraphNumberer(int classTag);
00113     
00115     virtual Element       *getNewElement(int classTag);
00117     virtual Node          *getNewNode(int classTag);
00119     virtual MP_Constraint *getNewMP(int classTag);
00121     virtual SP_Constraint *getNewSP(int classTag);
00123     virtual NodalLoad     *getNewNodalLoad(int classTag);
00125     virtual ElementalLoad *getNewElementalLoad(int classTag);
00126 
00128     virtual CrdTransf2d *getNewCrdTransf2d(int classTag);
00130     virtual CrdTransf3d *getNewCrdTransf3d(int classTag);
00131 
00133     virtual UniaxialMaterial  *getNewUniaxialMaterial(int classTag);
00135     virtual SectionForceDeformation  *getNewSection(int classTag);    
00137     virtual NDMaterial *getNewNDMaterial(int classTag);
00139     virtual Fiber *getNewFiber(int classTag);
00140 
00142     virtual ConvergenceTest *getNewConvergenceTest(int classTag);
00144     virtual LoadPattern *getNewLoadPattern(int classTag);
00146     virtual GroundMotion *getNewGroundMotion(int classTag);
00148     virtual TimeSeries  *getNewTimeSeries(int classTag);    
00149     
00151     virtual Matrix   *getPtrNewMatrix(int classTag, int noRows, int noCols);
00153     virtual Vector   *getPtrNewVector(int classTag, int size);
00155     virtual ID           *getPtrNewID(int classTag, int size);
00156     
00158     virtual ConstraintHandler   *getNewConstraintHandler(int classTag);
00160     virtual DOF_Numberer        *getNewNumberer(int classTag);
00162     virtual AnalysisModel       *getNewAnalysisModel(int classTag);
00164     virtual EquiSolnAlgo        *getNewEquiSolnAlgo(int classTag);
00166     virtual DomainDecompAlgo    *getNewDomainDecompAlgo(int classTag);
00168     virtual StaticIntegrator    *getNewStaticIntegrator(int classTag);
00170     virtual TransientIntegrator *getNewTransientIntegrator(int classTag);
00172     virtual IncrementalIntegrator *getNewIncrementalIntegrator(int classTag);
00173 
00175     virtual LinearSOE *getNewLinearSOE(int classTagSOE, int classTagSolver);
00177     virtual LinearSOESolver *getNewLinearSolver(void);
00178     
00180     virtual LinearSOE *getPtrNewDDLinearSOE(int classTagSOE, 
00181          int classTagDDSolver);
00183     virtual DomainSolver *getNewDomainSolver(void);
00184 
00186     virtual DomainDecompositionAnalysis *
00187  getNewDomainDecompAnalysis(int classTag, Subdomain &theDomain);
00188 
00190     virtual Subdomain    *getSubdomainPtr(int classTag);
00191     
00192   protected:
00193     
00194   private:
00196     LinearSOESolver *lastLinearSolver;
00198     DomainSolver *lastDomainSolver;
00199 
00200 };
00201 
00202 #endif
00203 
00204 
Copyright Contact Us