XC Open source finite element analysis program
FEM_ObjectBrokerAllClasses.h
1 //----------------------------------------------------------------------------
2 // XC program; finite element analysis code
3 // for structural analysis and design.
4 //
5 // Copyright (C) Luis Claudio Pérez Tato
6 //
7 // This program derives from OpenSees <http://opensees.berkeley.edu>
8 // developed by the «Pacific earthquake engineering research center».
9 //
10 // Except for the restrictions that may arise from the copyright
11 // of the original program (see copyright_opensees.txt)
12 // XC is free software: you can redistribute it and/or modify
13 // it under the terms of the GNU General Public License as published by
14 // the Free Software Foundation, either version 3 of the License, or
15 // (at your option) any later version.
16 //
17 // This software is distributed in the hope that it will be useful, but
18 // WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 // GNU General Public License for more details.
21 //
22 //
23 // You should have received a copy of the GNU General Public License
24 // along with this program.
25 // If not, see <http://www.gnu.org/licenses/>.
26 //----------------------------------------------------------------------------
27 /* ****************************************************************** **
28 ** OpenSees - Open System for Earthquake Engineering Simulation **
29 ** Pacific Earthquake Engineering Research Center **
30 ** **
31 ** **
32 ** (C) Copyright 1999, The Regents of the University of California **
33 ** All Rights Reserved. **
34 ** **
35 ** Commercial use of this program without express permission of the **
36 ** University of California, Berkeley, is strictly prohibited. See **
37 ** file 'COPYRIGHT' in main directory for information on usage and **
38 ** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
39 ** **
40 ** Developed by: **
41 ** Frank McKenna (fmckenna@ce.berkeley.edu) **
42 ** Gregory L. Fenves (fenves@ce.berkeley.edu) **
43 ** Filip C. Filippou (filippou@ce.berkeley.edu) **
44 ** **
45 ** ****************************************************************** */
46 
47 // $Revision: 1.5 $
48 // $Date: 2009/05/14 22:52:04 $
49 // $Source: /usr/local/cvs/OpenSees/SRC/actor/objectBroker/FEM_ObjectBrokerAllClasses.h,v $
50 
51 // Written: fmk
52 // Revision: A
53 //
54 // Purpose: This file contains the class definition for FEM_ObjectBroker.
55 // FEM_ObjectBroker is is an object broker class for the finite element
56 // method. All methods are virtual to allow for subclasses; which can be
57 // used by programmers when introducing new subclasses of the main objects.
58 //
59 // What: "@(#) FEM_ObjectBrokerAllClasses.h, revA"
60 
61 
62 #ifndef FEM_ObjectBrokerAllClasses_h
63 #define FEM_ObjectBrokerAllClasses_h
64 
65 #include "FEM_ObjectBroker.h"
66 
67 namespace XC {
69 //
72  {
73  private:
74  DomainSolver *lastDomainSolver;
75  public:
77 
78  Actor*getNewActor(int classTag, Channel *theChannel);
79 
82  int classTag);
83 
84  // methods to get new modelling class objects
85  Element *getNewElement(int classTag);
86  Node *getNewNode(int classTag);
87  MFreedom_Constraint *getNewMP(int classTag);
88  SFreedom_Constraint *getNewSP(int classTag);
89  NodalLoad *getNewNodalLoad(int classTag);
90 
91  BeamIntegration *getNewBeamIntegration(int classTag);
92 
93  SectionForceDeformation *getNewSection(int classTag);
94  NDMaterial *getNewNDMaterial(int classTag);
95 
96  ConvergenceTest *getNewConvergenceTest(int classTag);
97  GroundMotion *getNewGroundMotion(int classTag);
98  TimeSeries *getNewTimeSeries(int classTag);
99  TimeSeriesIntegrator *getNewTimeSeriesIntegrator(int classTag);
100 
101  // matrix vector and id objects
102  Matrix *getPtrNewMatrix(int classTag, int noRows, int noCols);
103  Vector *getPtrNewVector(int classTag, int size);
104  ID *getPtrNewID(int classTag, int size);
105 
106  // methods for ouput objects
107  // DataOutputHandler *getPtrNewDataOutputHandler(int classTag);
108  Recorder *getPtrNewRecorder(int classTag);
109 
110 
111  // methods to get new analysis objects
112  //Accelerator *getAccelerator(int classTag);
113 
114  DomainSolver *getNewDomainSolver(void);
115 
116  Subdomain *getSubdomainPtr(int classTag);
117 
118  Parameter *getParameter(int classTag);
119 
120  int addUniaxialMaterial(int classTag, const char *lib, const char *funcName, UniaxialMaterial *(*)(void));
121  };
122 } // end of XC namespace
123 
124 #endif
125 
126 
Definition: Actor.h:90
Base class for 2D and 3D materials.
Definition: NDMaterial.h:91
Definition: Vector.h:82
Time integration of time series. A TimeSeriesIntegrator describes the numerical integration of a grou...
Definition: TimeSeriesIntegrator.h:74
Definition: PartitionedModelBuilder.h:76
used to solve a system of equations and to do static condensation operations on the linear system of ...
Definition: DomainSolver.h:79
FEM_ObjectBrokerAllClasses(void)
Default constructor.
Definition: FEM_ObjectBrokerAllClasses.cpp:87
Mesh node.
Definition: Node.h:99
FEM_ObjectBroker is is an object broker class for the finite element method. All methods are virtual ...
Definition: FEM_ObjectBroker.h:138
convergence test.
Definition: ConvergenceTest.h:75
Base calass for the finite elements.
Definition: Element.h:104
Definition: ID.h:77
An Recorder object is used in the program to store/restore information at each commit().
Definition: Recorder.h:79
Definition: Subdomain.h:87
Definition: Matrix.h:82
The same as FEM_ObjectBroker?
Definition: FEM_ObjectBrokerAllClasses.h:71
Channel is an abstract base class which defines the channel interface. A channel is a point of commun...
Definition: Channel.h:85
Recorder * getPtrNewRecorder(int classTag)
Returns a objeto de tipo Recorder.
Definition: FEM_ObjectBrokerAllClasses.cpp:554
Actor * getNewActor(int classTag, Channel *theChannel)
Creates a new actor de la clase cuyo tag being passed as parameter.
Definition: FEM_ObjectBrokerAllClasses.cpp:91
Definition: Parameter.h:65
Multi-freedom constraint. Objectt of this class store the information for a multifreedom constraint...
Definition: MFreedom_Constraint.h:84
Base class for ground motions.
Definition: GroundMotion.h:83
Base class for force deformation section models. Constitutive equations of the section.
Definition: SectionForceDeformation.h:86
Single freedom constraint.
Definition: SFreedom_Constraint.h:79
Load over a node.
Definition: NodalLoad.h:76
================================================================================
Definition: ContinuaReprComponent.h:34
Time variation of loads.A TimeSeries object is used to determine the load factor to be applied to the...
Definition: TimeSeries.h:81
Base class for integration on beam elements.
Definition: BeamIntegration.h:73
PartitionedModelBuilder * getPtrNewPartitionedModelBuilder(Subdomain &theSub, int classTag)
Creates a new PartitionedModelBuilder de la clase cuyo tag being passed as parameter.
Definition: FEM_ObjectBrokerAllClasses.cpp:108
Base class for uniaxial materials.
Definition: UniaxialMaterial.h:88