xc
PySimple1Gen.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 //$Revision: 1.4 $
29 //$Date: 2004/06/30 00:27:40 $
30 //$Source: /usr/local/cvs/OpenSees/SRC/material/uniaxial/soil_structure_interaction/generators/PySimple1Gen.h,v $
31 
32 #ifndef PYSIMPLE1GEN_H
33 #define PYSIMPLE1GEN_H
34 
35 #include <string>
36 #include <vector>
37 
38 #include "Simple1GenBase.h"
39 
40 namespace XC {
42 //
46  {
47  std::vector<std::string> pTest;
48  // Variables used for reading input files:
49  int NumPyEle, NumMpLoadSp, NumMp;
50  double pult, y50, maxz, minz, cu, e50, phi, sr, PULT, Y50;
51  int *PyEleNum, *PyNode1, *PyNode2, *PyMat, *PyDir; // Arrays for Py Elements File
52  int *pyType, stype;
53  double *gamma_t, *b_t, *b_b, *Cd_t, *Cd_b, // Arrays for Soil Properties File
54  *cu_t, *cu_b, *e50_t, *e50_b, *phi_t, *phi_b, *Sr_t, *Sr_b, *pult_t, *pult_b,
55  *y50_t, *y50_b, tribcoord[2];
56  std::vector<std::string> MatType;
57  std::string PatternInfo;
58 
59  // Member functions for reading input files:
60  void GetPyElements(const std::string &file);
61  void GetSoilProperties(const std::string &file);
62 
63 
64  // Member functions for generating output:
65  void GetPySimple1(const std::string &file1, const std::string &file2, const std::string &file3, const std::string &file4, const std::string &file5);
66  void GetPattern(const std::string &file6);
67 
68  void free_mem(void);
69  // Member functions for calculating pult:
70  double GetPult(const std::string &type);
71  double GetY50(const std::string &type);
72  double GetVStress(double z);
73  double GetMp(double *vx, double *vy, double x, int length);
74  void GetTributaryCoordsPy(int nodenum1);
75  void GetTributaryCoordsPile(int nodenum1);
76 
77 public:
78  // Public member functions accessed from TclModelBuilder.cpp
79  void WritePySimple1(const std::string &file1, const std::string &file2, const std::string &file3, const std::string &file4, const std::string &file5);
80  void WritePySimple1(const std::string &file1, const std::string &file2, const std::string &file3, const std::string &file4, const std::string &file5, const std::string &file6);
81  PySimple1Gen(void);
82  ~PySimple1Gen(void);
83  };
84 } // end of XC namespace
85 
86 #endif
Base class for objects that constructs PySimple1 materials (Boulanger, 2003) for pre-defined zeroLeng...
Definition: Simple1GenBase.h:43
PySimple1Gen(void)
Constructor initializes global variables to zero.
Definition: PySimple1Gen.cpp:162
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
Constructs PySimple1 materials (Boulanger, 2003) for pre-defined zeroLength elements.
Definition: PySimple1Gen.h:45