xc
DirectIntegrationAnalysis.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // XC program; finite element analysis code
4 // for structural analysis and design.
5 //
6 // Copyright (C) Luis C. Pérez Tato
7 //
8 // This program derives from OpenSees <http://opensees.berkeley.edu>
9 // developed by the «Pacific earthquake engineering research center».
10 //
11 // Except for the restrictions that may arise from the copyright
12 // of the original program (see copyright_opensees.txt)
13 // XC is free software: you can redistribute it and/or modify
14 // it under the terms of the GNU General Public License as published by
15 // the Free Software Foundation, either version 3 of the License, or
16 // (at your option) any later version.
17 //
18 // This software is distributed in the hope that it will be useful, but
19 // WITHOUT ANY WARRANTY; without even the implied warranty of
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 // GNU General Public License for more details.
22 //
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with this program.
26 // If not, see <http://www.gnu.org/licenses/>.
27 //----------------------------------------------------------------------------
28 /* ****************************************************************** **
29 ** OpenSees - Open System for Earthquake Engineering Simulation **
30 ** Pacific Earthquake Engineering Research Center **
31 ** **
32 ** **
33 ** (C) Copyright 1999, The Regents of the University of California **
34 ** All Rights Reserved. **
35 ** **
36 ** Commercial use of this program without express permission of the **
37 ** University of California, Berkeley, is strictly prohibited. See **
38 ** file 'COPYRIGHT' in main directory for information on usage and **
39 ** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
40 ** **
41 ** Developed by: **
42 ** Frank McKenna (fmckenna@ce.berkeley.edu) **
43 ** Gregory L. Fenves (fenves@ce.berkeley.edu) **
44 ** Filip C. Filippou (filippou@ce.berkeley.edu) **
45 ** **
46 ** ****************************************************************** */
47 
48 // $Revision: 1.4 $
49 // $Date: 2005/11/29 23:36:47 $
50 // $Source: /usr/local/cvs/OpenSees/SRC/analysis/analysis/DirectIntegrationAnalysis.h,v $
51 
52 
53 #ifndef DirectIntegrationAnalysis_h
54 #define DirectIntegrationAnalysis_h
55 
56 // Written: fmk
57 // Created: 11/96
58 // Revision: A
59 //
60 // Description: This file contains the class definition for
61 // DirectIntegrationAnalysis. DirectIntegrationAnalysis is a
62 // subclass of TransientAnalysis. It is used to perform a
63 // dynamic analysis on the FE\_Model using a direct integration scheme.
64 //
65 // What: "@(#) DirectIntegrationAnalysis.h, revA"
66 
67 #include <solution/analysis/analysis/TransientAnalysis.h>
68 
69 namespace XC {
70 class ConvergenceTest;
71 
72 // AddingSensitivity:BEGIN ///////////////////////////////
73 #ifdef _RELIABILITY
74 class SensitivityAlgorithm;
75 #endif
76 // AddingSensitivity:END ///////////////////////////////
77 
79 //
86  {
87  private:
88  int domainStamp;
89  // AddingSensitivity:BEGIN ///////////////////////////////
90 #ifdef _RELIABILITY
91  SensitivityAlgorithm *theSensitivityAlgorithm;
92 #endif
93  // AddingSensitivity:END ///////////////////////////////
94  protected:
95  friend class SolutionProcedure;
96  DirectIntegrationAnalysis(SolutionStrategy *analysis_aggregation);
97  Analysis *getCopy(void) const;
98  public:
99  virtual ~DirectIntegrationAnalysis(void);
100 
101  void clearAll(void);
102 
103  int analyze(int numSteps, double dT);
104  int initialize(void);
105 
106  int domainChanged(void);
107 
108  int setNumberer(DOF_Numberer &theNumberer);
109  int setAlgorithm(EquiSolnAlgo &theAlgorithm);
110  int setIntegrator(TransientIntegrator &theIntegrator);
111  int setLinearSOE(LinearSOE &theSOE);
112  int setConvergenceTest(ConvergenceTest &theTest);
113 
114  int checkDomainChange(void);
115 
116  // AddingSensitivity:BEGIN ///////////////////////////////
117 #ifdef _RELIABILITY
118  int setSensitivityAlgorithm(SensitivityAlgorithm *theSensitivityAlgorithm);
119 #endif
120  // AddingSensitivity:END /////////////////////////////////
121  };
123  { return new DirectIntegrationAnalysis(*this); }
124 } // end of XC namespace
125 
126 #endif
127 
Base class for DOF numbererers.
Definition: DOF_Numberer.h:94
int setAlgorithm(EquiSolnAlgo &theAlgorithm)
Sets the solutio algorithm to use in the analysis.
Definition: DirectIntegrationAnalysis.cpp:359
Linear system of equations.
Definition: LinearSOE.h:92
Base class for the object that perform the analysis.
Definition: Analysis.h:117
Analysis of the time-dependent response of the model.
Definition: TransientAnalysis.h:73
Solution procedure for the finite element problem.
Definition: SolutionProcedure.h:57
void clearAll(void)
Clears all object members (constraint handler, analysis model,...).
Definition: DirectIntegrationAnalysis.cpp:107
??
Definition: SensitivityAlgorithm.h:72
int setNumberer(DOF_Numberer &theNumberer)
Sets the renumerador to use in the analysis.
Definition: DirectIntegrationAnalysis.cpp:329
Base class for solution algorithms.
Definition: EquiSolnAlgo.h:91
Analysis * getCopy(void) const
Virtual constructor.
Definition: DirectIntegrationAnalysis.h:122
int domainChanged(void)
Execute the changes following a change in the domain.
Definition: DirectIntegrationAnalysis.cpp:275
int setLinearSOE(LinearSOE &theSOE)
Sets the linear system of equations to use in the analysis.
Definition: DirectIntegrationAnalysis.cpp:444
convergence test.
Definition: ConvergenceTest.h:81
Solution strategy for the finite element problem.
Definition: SolutionStrategy.h:94
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
DirectIntegrationAnalysis(SolutionStrategy *analysis_aggregation)
Constructor.
Definition: DirectIntegrationAnalysis.cpp:82
virtual ~DirectIntegrationAnalysis(void)
Destructor.
Definition: DirectIntegrationAnalysis.cpp:95
Direct integration dynamic analysis.
Definition: DirectIntegrationAnalysis.h:85
int setConvergenceTest(ConvergenceTest &theTest)
Sets the convergence test to use in the analysis.
Definition: DirectIntegrationAnalysis.cpp:479
int checkDomainChange(void)
Comprueba si el domain ha cambiado.
Definition: DirectIntegrationAnalysis.cpp:487
int setIntegrator(TransientIntegrator &theIntegrator)
Sets the integrator to use in the analysis.
Definition: DirectIntegrationAnalysis.cpp:403
int analyze(int numSteps, double dT)
Performs the analysis.
Definition: DirectIntegrationAnalysis.cpp:157