From 3bbabe1fc5865f06366065f6efc2bed132d0dacf Mon Sep 17 00:00:00 2001
From: claudio perez <50180406+claudioperez@users.noreply.github.com>
Date: Fri, 23 Aug 2024 10:20:05 -0700
Subject: [PATCH 1/3] cmp - clean up
---
src/opensees/openseespy.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/opensees/openseespy.py b/src/opensees/openseespy.py
index ba443eafcc..f498334149 100644
--- a/src/opensees/openseespy.py
+++ b/src/opensees/openseespy.py
@@ -338,7 +338,7 @@ def _mesh_line(self, tag, numnodes, ndtags, id, ndf:int, meshsize, eleType='', e
elem_tag = next(new_elem)
- if i < nn:
+ if i < nn and eleType != '' and eleArgs:
add_element(eleType,elem_tag,nodes[i],nodes[i+1],*eleArgs)
self._mesh["line"][tag] = nodes
@@ -449,6 +449,8 @@ def surface(self, split, element: str=None, args=None, points=None, name=None, k
m_elems = {tag for tag in m_elems}
m_nodes = self._openseespy._str_call("getNodeTags")
+ if isinstance(m_nodes, int):
+ m_nodes = {m_nodes}
if m_nodes is not None:
m_nodes = {
int(tag): self._openseespy._str_call("nodeCoord", f"{tag}")
From 36136029e2f3181588b6f98e37f245092455cabb Mon Sep 17 00:00:00 2001
From: claudio perez <50180406+claudioperez@users.noreply.github.com>
Date: Fri, 23 Aug 2024 10:20:51 -0700
Subject: [PATCH 2/3] cmp
---
docs/.user/analysis/MomentCurvature.md | 0
docs/.user/ast.md | 1 -
docs/.user/cookbook.md | 22 --
docs/.user/modeling/section/index.md | 75 ------
docs/.user/modeling/section/layer.md | 88 -------
docs/.user/modeling/section/patch.md | 225 ------------------
docs/.user/modeling/section/torsion.md | 0
docs/.user/pattern/Plain.md | 4 -
docs/.user/pattern/UniformExcitation.md | 21 --
.../analysis/Eigen_Analysis/ArpackSolver.md | 18 --
.../Eigen_Analysis/EigenAlgorithm.cpp | 85 -------
.../analysis/Eigen_Analysis/EigenAlgorithm.md | 78 ------
.../analysis/Eigen_Analysis/FrequencyAlgo.cpp | 124 ----------
.../analysis/Eigen_Analysis/FrequencyAlgo.md | 44 ----
.../Eigen_Analysis/StandardEigenAlgo.cpp | 106 ---------
.../Eigen_Analysis/StandardEigenAlgo.md | 37 ---
docs/library/analysis/Eigen_Analysis/index.md | 12 -
.../StaticAnalysis/StagedLoadControl.md | 2 -
18 files changed, 942 deletions(-)
delete mode 100644 docs/.user/analysis/MomentCurvature.md
delete mode 100644 docs/.user/ast.md
delete mode 100644 docs/.user/cookbook.md
delete mode 100644 docs/.user/modeling/section/index.md
delete mode 100644 docs/.user/modeling/section/layer.md
delete mode 100644 docs/.user/modeling/section/patch.md
delete mode 100644 docs/.user/modeling/section/torsion.md
delete mode 100644 docs/.user/pattern/Plain.md
delete mode 100644 docs/.user/pattern/UniformExcitation.md
delete mode 100644 docs/library/analysis/Eigen_Analysis/ArpackSolver.md
delete mode 100644 docs/library/analysis/Eigen_Analysis/EigenAlgorithm.cpp
delete mode 100644 docs/library/analysis/Eigen_Analysis/EigenAlgorithm.md
delete mode 100644 docs/library/analysis/Eigen_Analysis/FrequencyAlgo.cpp
delete mode 100644 docs/library/analysis/Eigen_Analysis/FrequencyAlgo.md
delete mode 100644 docs/library/analysis/Eigen_Analysis/StandardEigenAlgo.cpp
delete mode 100644 docs/library/analysis/Eigen_Analysis/StandardEigenAlgo.md
delete mode 100644 docs/library/analysis/Eigen_Analysis/index.md
delete mode 100644 docs/library/analysis/StaticAnalysis/StagedLoadControl.md
diff --git a/docs/.user/analysis/MomentCurvature.md b/docs/.user/analysis/MomentCurvature.md
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/docs/.user/ast.md b/docs/.user/ast.md
deleted file mode 100644
index c56cd1e98a..0000000000
--- a/docs/.user/ast.md
+++ /dev/null
@@ -1 +0,0 @@
-# AST Reference
diff --git a/docs/.user/cookbook.md b/docs/.user/cookbook.md
deleted file mode 100644
index ae9b607d59..0000000000
--- a/docs/.user/cookbook.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Cookbook
-
-## Modeling
-
-- [Section Building](figures/)
-
-## Analysis Procedures
-
-### Static
-
-- Load
-- Displacement
-
-### Dynamic
-
-- time history
-
-- response spectrum
-
-- modal analysis
-
-
diff --git a/docs/.user/modeling/section/index.md b/docs/.user/modeling/section/index.md
deleted file mode 100644
index 547be033f3..0000000000
--- a/docs/.user/modeling/section/index.md
+++ /dev/null
@@ -1,75 +0,0 @@
-
----
-title: section
-...
-
-
-
-# section
-
-
-
-This module provides constructors for `SectionForceDeformation` objects
-which represent force-deformation (or resultant stress-strain)
-relationships at beam-column and plate sample points.
-
-
-
-
-
-
- FiberSection(name, torsional_stiffness, areas, **kwds)
-
-
-
-
-
-
-
-
-
-
-name | Tag | |
-GJ | Num | linear-elastic torsional stiffness assigned to the section (optional, default = no torsional stiffness) |
-areas | [] |
- |
-
-
-
-
-
-
-
-
- SectionAggregator(name, materials, section, **kwds)
-
-
-
-![](/figures/SectionAggregator.gif)
-
-
-
-
-
-
-
-name | Tag | |
-materials | {dof : material ...} | the force-deformation quantity to be modeled by this section object.
-dof | Flg | |
-material | Ref(uniaxial) | tags of previously-defined `UniaxialMaterial` objects |
-
- |
-section | Ref(section) | tag of previously-defined Section object to which the UniaxialMaterial objects are aggregated as additional force-deformation relationships |
-
-
-
-
-
-
diff --git a/docs/.user/modeling/section/layer.md b/docs/.user/modeling/section/layer.md
deleted file mode 100644
index 824cdbbc0c..0000000000
--- a/docs/.user/modeling/section/layer.md
+++ /dev/null
@@ -1,88 +0,0 @@
-
----
-title: layer
-...
-
-
-
-# layer
-
-
-
-
-
-
-
- circ(material, divs, fiber_area, center, radius, arc, **kwds)
-
-
-
-
-
-
-
-
-
-
-material | Ref(Material) | material tag of previously created material (UniaxialMaterial tag for a FiberSection or NDMaterial tag for use in an NDFiberSection) |
-divs | Int | number of fibers along arc |
-area | Num | area of each fiber |
-center | [y,z] | $y$ and $z$-coordinates of center of circular arc
- |
-radius | Num | radius of circular arc |
-arc = [0.0, 6.283185307179586] | [startAng,endAng] |
-startAng | Num | starting angle |
-endAng | Num | ending angle |
-
- |
-
-
-
-
-
-
-
-
- line(material, divs, fiber_area, vertices, **kwds)
-
-
-
-![](/figures/straightLayer.svg)
-
-
-
-
-
-
-
-material | Ref(Material) | Reference to previously created material (`UniaxialMaterial` for a `FiberSection` or `NDMaterial` for use in an `NDFiberSection`) |
-divs | Int | number of fibers along line |
-area | Num | area of each fiber |
-vertices | [[x,y],[x,y]] |
-start | [x,y] | $x$ and $y$-coordinates of first fiber in line (local coordinate system)
- |
-end | [x,y] | $x$ and $y$-coordinates of last fiber in line (local coordinate system)
- |
-
- |
-
-
-
-
-
-
diff --git a/docs/.user/modeling/section/patch.md b/docs/.user/modeling/section/patch.md
deleted file mode 100644
index 38aa8d939f..0000000000
--- a/docs/.user/modeling/section/patch.md
+++ /dev/null
@@ -1,225 +0,0 @@
-
----
-title: patch
-...
-
-
-
-# patch
-
-
-
-A patch is used to generate a number of fibers over a cross-sectional area.
-Currently there are three types of patches that fibers can be generated over:
-quadrilateral, rectangular and circular.
-
-All patches have the following attributes:
-
-
- area
- - Total area of the patch.
-
- moic
- - Second moment of area matrix of the patch about its centroidal axis
-
- ixc
- - Second moment of inertia of the patch about its $x$ axis
-
- iyc
- - Second moment of inertia of the patch about its $y$ axis
-
-
-
-
-
-
-
-
- Fiber(coord, area, material, **kwds)
-
-
-
-
-
-
-
-
-
-
-coord | [x,y] | $x$ and $y$ coordinate of the fiber in the section (local coordinate system)
- |
-area | Num | area of the fiber. |
-material | Ref(Material) | material tag associated with this fiber (UniaxialMaterial tagfor a FiberSection and NDMaterial tag for use in an NDFiberSection). |
-
-
-
-
-
-
-
-
- rect(material, divs, corners, **kwds)
-
-
-
-
-
-
-
-
-
-
-material | Ref(Material) | tag of previously defined material (`UniaxialMaterial`tag for a `FiberSection` or `NDMaterial` tag for use in an `NDFiberSection`) |
-divs | [ij,jk] |
-ij | Int | number of subdivisions (fibers) in the IJ direction. |
-jk | Int | number of subdivisions (fibers) in the JK direction. |
-
- |
-corners | [[yI,zI],[yK,zK]] |
-[yI,zI] | Grp | $y$ & $z$-coordinates of vertex I (local coordinate system)
- |
-[yK,zK] | Grp | $y$ & $z$-coordinates of vertex K (local coordinate system)
- |
-
- |
-
-
-
-
-
-
-
-
- quad(material, divs, vertices, **kwds)
-
-
-
-![](/figures/quadPatch.svg)
-
-
-
-
-
-
-
-material | Ref(Material) | tag of previously defined material (`UniaxialMaterial` tag for a `FiberSection` or `NDMaterial` tag for use in an `NDFiberSection`) |
-divs | [ij,jk] |
-ij | Int | number of subdivisions (fibers) in the IJ direction. |
-jk | Int | number of subdivisions (fibers) in the JK direction. |
-
- |
-vertices | [[x,y],[x,y],[x,y],[x,y]] |
-i | [x,y] | $x$ & $y$-coordinates of vertex I (local coordinate system)
- |
-j | [x,y] | $x$ & $y$-coordinates of vertex J (local coordinate system)
- |
-k | [x,y] | $x$ & $y$-coordinates of vertex K (local coordinate system)
- |
-l | [x,y] | $x$ & $y$-coordinates of vertex L (local coordinate system)
- |
-
- |
-
-
-
-
-
-
-
-
- circ(material,
divs,
center,
intRad,
extRad,
startAng,
endAng,
**kwds)
-
-
-
-![](/figures/circPatch.svg)
-
-
-
-
-
-
-
-material | Ref(Material) | tag of previously defined material (`UniaxialMaterial` tag for a `FiberSection` or `NDMaterial` tag for use in an `NDFiberSection`) |
-divs | [circ,rad] |
-circ | Int | number of subdivisions (fibers) in the circumferential direction (number of wedges) |
-rad | Int | number of subdivisions (fibers) in the radial direction (number of rings) |
-
- |
-center = [0.0, 0.0] | [y,z] | $y$ & $z$-coordinates of the center of the circle
- |
-intRad | Num | internal radius |
-extRad | Num | external radius |
-startAng | Num | starting angle |
-endAng = 6.283185307179586 | Num | ending angle |
-
-
-
-
-
-
-
-
- line(material, divs, fiber_area, vertices, **kwds)
-
-
-
-![](/figures/straightLayer.svg)
-
-
-
-
-
-
-
-material | Ref(Material) | Reference to previously created material (`UniaxialMaterial` for a `FiberSection` or `NDMaterial` for use in an `NDFiberSection`) |
-divs | Int | number of fibers along line |
-area | Num | area of each fiber |
-vertices | [[x,y],[x,y]] |
-start | [x,y] | $x$ and $y$-coordinates of first fiber in line (local coordinate system)
- |
-end | [x,y] | $x$ and $y$-coordinates of last fiber in line (local coordinate system)
- |
-
- |
-
-
-
-
-
-
diff --git a/docs/.user/modeling/section/torsion.md b/docs/.user/modeling/section/torsion.md
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/docs/.user/pattern/Plain.md b/docs/.user/pattern/Plain.md
deleted file mode 100644
index 5cf0bf9b83..0000000000
--- a/docs/.user/pattern/Plain.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# Plain Pattern
-
-
-
diff --git a/docs/.user/pattern/UniformExcitation.md b/docs/.user/pattern/UniformExcitation.md
deleted file mode 100644
index bcb2d469df..0000000000
--- a/docs/.user/pattern/UniformExcitation.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# UniformExcitation
-
-```cpp
-#include
-
-class UniformExcitation: public EarthquakeLoad
-```
-
- TaggedObject\
- MovableObject\
- DomainComponent\
- LoadPattern\
- EarthquakePattern\
-
-
-A UniformExcitation is an object which adds the loads imposed by a
-single ground excitation to the model. For a UniformExcitation this
-means that the *R* matrix at each node will have $1$ column and all
-entries but those corresponding to the degree of freedom direction will
-be set to $0$, the value for the degree of freedom direction will be set
-to $1$.
diff --git a/docs/library/analysis/Eigen_Analysis/ArpackSolver.md b/docs/library/analysis/Eigen_Analysis/ArpackSolver.md
deleted file mode 100644
index d9e0876441..0000000000
--- a/docs/library/analysis/Eigen_Analysis/ArpackSolver.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# ArpackSolver
-
-This is the solver that works on the ArpackSOE. It uses the LinearSOE
-in the SOE to perform the solve() operation if required.
-It uses the ARPACK library to perform the eigenvalue analysis.
-ARPACK is an eigen analysis package which was developed by
-R.B.Lehoucq, D.C.Sorensen and C.Yang at Rice University. ARPACK is a
-collection of FORTRAN77 subroutines designed to solve large scale eigen
-problems. ARPACK is capable of solving large scale non-Hermitian standard
-and generalized eigen problems. When the matrix K is symmetric,
-the method is a variant of the Lanczos process called Implicitly Restarted
-Lanczos Method (IRLM).
-
-
-It is based on previous work of Jun Peng(Stanford)
-
- Written: fmk
- Created: 05.09
diff --git a/docs/library/analysis/Eigen_Analysis/EigenAlgorithm.cpp b/docs/library/analysis/Eigen_Analysis/EigenAlgorithm.cpp
deleted file mode 100644
index e1b08c2866..0000000000
--- a/docs/library/analysis/Eigen_Analysis/EigenAlgorithm.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/* ****************************************************************** **
-** OpenSees - Open System for Earthquake Engineering Simulation **
-** Pacific Earthquake Engineering Research Center **
-** **
-** **
-** (C) Copyright 1999, The Regents of the University of California **
-** All Rights Reserved. **
-** **
-** Commercial use of this program without express permission of the **
-** University of California, Berkeley, is strictly prohibited. See **
-** file 'COPYRIGHT' in main directory for information on usage and **
-** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
-** **
-** Developed by: **
-** Frank McKenna (fmckenna@ce.berkeley.edu) **
-** Gregory L. Fenves (fenves@ce.berkeley.edu) **
-** Filip C. Filippou (filippou@ce.berkeley.edu) **
-** **
-** ****************************************************************** */
-
-// $Revision: 1.1.1.1 $
-// $Date: 2000-09-15 08:23:16 $
-// $Source: /usr/local/cvs/OpenSees/SRC/analysis/algorithm/eigenAlgo/EigenAlgorithm.cpp,v $
-
-
-// File: ~/analysis/algorithm/eigenAlgo/EigenAlgorithm.C
-//
-// Written: Jun Peng
-// Created: Wed Jan 27, 1999
-// Revision: A
-//
-// Description: This file contains the class definition of EigenAlgorithm.
-// EigenAlgorithm is a class which performs a eigen solution algorithm
-// to solve the equations.
-//
-// This class is inheritanted from the base class of SolutionAlgorithm
-// which was created by fmk (Frank).
-
-
-#include
-#include
-#include
-#include
-
-EigenAlgorithm::EigenAlgorithm(int classTag)
- :SolutionAlgorithm(classTag),
- theModel(0), theIntegrator(0), theSOE(0)
-{
- // need do nothing here.
-}
-
-
-EigenAlgorithm::~EigenAlgorithm()
-{
- // do nothing here.
-}
-
-void
-EigenAlgorithm::setLinks(AnalysisModel &theNewModel,
- EigenIntegrator &theNewIntegrator,
- EigenSOE &theNewSOE)
-{
- theModel = &theNewModel;
- theIntegrator = &theNewIntegrator;
- theSOE = &theNewSOE;
-}
-
-AnalysisModel *
-EigenAlgorithm::getAnalysisModelPtr() const
-{
- return theModel;
-}
-
-EigenIntegrator *
-EigenAlgorithm::getEigenIntegratorPtr() const
-{
- return theIntegrator;
-}
-
-EigenSOE *
-EigenAlgorithm::getEigenSOEptr() const
-{
- return theSOE;
-}
-
diff --git a/docs/library/analysis/Eigen_Analysis/EigenAlgorithm.md b/docs/library/analysis/Eigen_Analysis/EigenAlgorithm.md
deleted file mode 100644
index 68284aa0ff..0000000000
--- a/docs/library/analysis/Eigen_Analysis/EigenAlgorithm.md
+++ /dev/null
@@ -1,78 +0,0 @@
-/* ****************************************************************** **
-** OpenSees - Open System for Earthquake Engineering Simulation **
-** Pacific Earthquake Engineering Research Center **
-** **
-** **
-** (C) Copyright 1999, The Regents of the University of California **
-** All Rights Reserved. **
-** **
-** Commercial use of this program without express permission of the **
-** University of California, Berkeley, is strictly prohibited. See **
-** file 'COPYRIGHT' in main directory for information on usage and **
-** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
-** **
-** Developed by: **
-** Frank McKenna (fmckenna@ce.berkeley.edu) **
-** Gregory L. Fenves (fenves@ce.berkeley.edu) **
-** Filip C. Filippou (filippou@ce.berkeley.edu) **
-** **
-** ****************************************************************** */
-
-// $Revision: 1.2 $
-// $Date: 2003-02-14 23:00:41 $
-// $Source: /usr/local/cvs/OpenSees/SRC/analysis/algorithm/eigenAlgo/EigenAlgorithm.h,v $
-
-
-// File: ~/analysis/algorithm/eigenAlgo/EigenAlgorithm.h
-//
-// Written: Jun Peng
-// Created: Wed Jan 27, 1999
-// Revision: A
-//
-// Description: This file contains the class definition of EigenAlgorithm.
-// EigenAlgorithm is a class which performs a eigen solution algorithm
-// to solve the equations.
-//
-// This class is inheritanted from the base class of SolutionAlgorithm
-// which was created by fmk (Frank).
-
-
-#ifndef EigenAlgorithm_h
-#define EigenAlgorithm_h
-
-#include
-#include
-
-class AnalysisModel;
-class EigenSOE;
-class EigenIntegrator;
-
-class EigenAlgorithm : public SolutionAlgorithm
-{
- public:
- EigenAlgorithm(int classTag);
- virtual ~EigenAlgorithm();
-
- // public functions defined for subclasses
- virtual void setLinks(AnalysisModel &theModel,
- EigenIntegrator &theIntegrator,
- EigenSOE &theSOE);
-
- // pure virtual functions
- virtual int solveCurrentStep(int numModes) = 0;
- virtual void Print(OPS_Stream &s, int flag=0) = 0;
-
- virtual AnalysisModel *getAnalysisModelPtr() const;
- virtual EigenIntegrator *getEigenIntegratorPtr() const;
- virtual EigenSOE *getEigenSOEptr() const;
-
- protected:
-
- private:
- AnalysisModel *theModel;
- EigenIntegrator *theIntegrator;
- EigenSOE *theSOE;
-
-};
-
-#endif
diff --git a/docs/library/analysis/Eigen_Analysis/FrequencyAlgo.cpp b/docs/library/analysis/Eigen_Analysis/FrequencyAlgo.cpp
deleted file mode 100644
index 2282494f05..0000000000
--- a/docs/library/analysis/Eigen_Analysis/FrequencyAlgo.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-/* ****************************************************************** **
-** OpenSees - Open System for Earthquake Engineering Simulation **
-** Pacific Earthquake Engineering Research Center **
-** **
-** **
-** (C) Copyright 1999, The Regents of the University of California **
-** All Rights Reserved. **
-** **
-** Commercial use of this program without express permission of the **
-** University of California, Berkeley, is strictly prohibited. See **
-** file 'COPYRIGHT' in main directory for information on usage and **
-** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
-** **
-** Developed by: **
-** Frank McKenna (fmckenna@ce.berkeley.edu) **
-** Gregory L. Fenves (fenves@ce.berkeley.edu) **
-** Filip C. Filippou (filippou@ce.berkeley.edu) **
-** **
-** ****************************************************************** */
-
-// $Revision: 1.3 $
-// $Date: 2009-07-29 21:57:42 $
-// $Source: /usr/local/cvs/OpenSees/SRC/analysis/algorithm/eigenAlgo/FrequencyAlgo.cpp,v $
-
-
-// File: ~/analysis/algorithm/eigenAlgo/FrequencyAlgo.C
-//
-// Written: Jun Peng
-// Created: Mon Feb. 8, 1999
-// Revision: A
-//
-// Description: This file contains the class definition of FrequencyAlgo.
-// FrequencyAlgo is a class which performs a eigen solution algorithm
-// to solve the Generalized eigen equations. It is not expected that
-// this class will have subclasses.
-//
-// This class is inheritanted from the base class of SolutionAlgorithm
-// which was created by fmk (Frank).
-
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-FrequencyAlgo::FrequencyAlgo()
- :EigenAlgorithm(EigenALGORITHM_TAGS_Frequency)
-{
- // do nothing here.
-}
-
-FrequencyAlgo::~FrequencyAlgo()
-{
- // do nothing here.
-}
-
-int
-FrequencyAlgo::solveCurrentStep(int numModes)
-{
- AnalysisModel *theModel = this->getAnalysisModelPtr();
- EigenSOE *theSOE = this->getEigenSOEptr();
- EigenIntegrator *theIntegrator = this->getEigenIntegratorPtr();
-
- if ((theModel == 0) || (theIntegrator == 0) || (theSOE == 0)) {
- opserr << "WARNING FrequencyAlgo::solverCurrentStep() - ";
- opserr << "setLinks() has not been called. \n";
- return -1;
- }
-
- if (theIntegrator->formK() < 0) {
- opserr << "WARNING FrequencyAlgo::solverCurrentStep() - ";
- opserr << "the Integrator failed in formK().\n";
- return -2;
- }
-
- if (theIntegrator->formM() < 0) {
- opserr << "WARNING FrequencyAlgo::solverCurrentStep() - ";
- opserr << "the Integrator failed in formK().\n";
- return -3;
- }
-
- if (theSOE->solve(numModes, true) < 0) {
- opserr << "Warning FrequencyAlgo::solveCurrentStep() - ";
- opserr << "the EigenSOE failed in solve().\n";
- return -4;
- }
-
- // now set the eigenvalues and eigenvectors in the model
- theModel->setNumEigenvectors(numModes);
- Vector theEigenvalues(numModes);
- for (int i=1; i<=numModes; i++) {
- theEigenvalues[i-1] = theSOE->getEigenvalue(i);
- theModel->setEigenvector(i, theSOE->getEigenvector(i));
- }
- theModel->setEigenvalues(theEigenvalues);
-
- return 0;
-}
-
-int
-FrequencyAlgo::sendSelf(int cTag, Channel &theChannel)
-{
- return 0;
-}
-
-int
-FrequencyAlgo::recvSelf(int cTag, Channel &theChannel,
- FEM_ObjectBroker &theBroker)
-{
- return 0;
-}
-
-void
-FrequencyAlgo::Print(OPS_Stream &s, int flag)
-{
- s << "\t Eigen Algorithm \n";
-}
-
-
diff --git a/docs/library/analysis/Eigen_Analysis/FrequencyAlgo.md b/docs/library/analysis/Eigen_Analysis/FrequencyAlgo.md
deleted file mode 100644
index e0b36dfbc8..0000000000
--- a/docs/library/analysis/Eigen_Analysis/FrequencyAlgo.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# FrequencyAlgo
-// $Revision: 1.2 $
-// $Date: 2003-02-14 23:00:41 $
-// $Source: /usr/local/cvs/OpenSees/SRC/analysis/algorithm/eigenAlgo/FrequencyAlgo.h,v $
-
-
-// File: ~/analysis/algorithm/eigenAlgo/FrequencyAlgo.h
-//
-// Written: Jun Peng
-// Created: Wed Feb. 8, 1999
-// Revision: A
-
-FrequencyAlgo is a class which performs a eigen solution algorithm
-to solve the Generalized eigen equations. It is not expected that
-this class will have subclasses.
-
-This class is inheritanted from the base class of SolutionAlgorithm
-which was created by fmk (Frank).
-
-
-```cpp
-#include
-
-class FrequencyAlgo : public EigenAlgorithm
-{
- public:
- FrequencyAlgo();
- virtual ~FrequencyAlgo();
-
- virtual int solveCurrentStep(int numModes);
-
- virtual int sendSelf(int commitTag, Channel &theChannel);
- virtual int recvSelf(int commitTag, Channel &theChannel,
- FEM_ObjectBroker &theBroker);
-
- virtual void Print(OPS_Stream &s, int flag = 0);
-
- protected:
-
- private:
-
-};
-```
-
diff --git a/docs/library/analysis/Eigen_Analysis/StandardEigenAlgo.cpp b/docs/library/analysis/Eigen_Analysis/StandardEigenAlgo.cpp
deleted file mode 100644
index 3f71ecede9..0000000000
--- a/docs/library/analysis/Eigen_Analysis/StandardEigenAlgo.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-/* ****************************************************************** **
-** OpenSees - Open System for Earthquake Engineering Simulation **
-** Pacific Earthquake Engineering Research Center **
-** **
-** **
-** (C) Copyright 1999, The Regents of the University of California **
-** All Rights Reserved. **
-** **
-** Commercial use of this program without express permission of the **
-** University of California, Berkeley, is strictly prohibited. See **
-** file 'COPYRIGHT' in main directory for information on usage and **
-** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
-** **
-** Developed by: **
-** Frank McKenna (fmckenna@ce.berkeley.edu) **
-** Gregory L. Fenves (fenves@ce.berkeley.edu) **
-** Filip C. Filippou (filippou@ce.berkeley.edu) **
-** **
-** ****************************************************************** */
-
-// $Revision: 1.3 $
-// $Date: 2009-07-29 21:57:42 $
-// $Source: /usr/local/cvs/OpenSees/SRC/analysis/algorithm/eigenAlgo/StandardEigenAlgo.cpp,v $
-
-// Written: MHS
-// Created: Oct 2001
-//
-// Description: This file contains the class definition of StandardEigenAlgo.
-// StandardEigenAlgo is a class which performs a eigen solution algorithm
-// to solve standard eigenvalue equations. It is not expected that
-// this class will have subclasses.
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-StandardEigenAlgo::StandardEigenAlgo()
- :EigenAlgorithm(EigenALGORITHM_TAGS_Standard)
-{
- // do nothing here.
-}
-
-StandardEigenAlgo::~StandardEigenAlgo()
-{
- // do nothing here.
-}
-
-int
-StandardEigenAlgo::solveCurrentStep(int numModes)
-{
- AnalysisModel *theModel = this->getAnalysisModelPtr();
- EigenSOE *theSOE = this->getEigenSOEptr();
- EigenIntegrator *theIntegrator = this->getEigenIntegratorPtr();
-
- if ((theModel == 0) || (theIntegrator == 0) || (theSOE == 0)) {
-
- opserr << "StandardEigenAlgo::solverCurrentStep() -- setLinks() has not been called\n";
- return -1;
- }
-
- if (theIntegrator->formK() < 0) {
- opserr << "StandardEigenAlgo::solverCurrentStep() -- the Integrator failed in formK()\n";
- return -2;
- }
-
- if (theSOE->solve(numModes, false) < 0) {
- opserr << "StandardEigenAlgo::solverCurrentStep() -- the EigenSOE failed in solve()\n";
- return -4;
- }
-
- // now set the eigenvalues and eigenvectors in the model
- theModel->setNumEigenvectors(numModes);
- Vector theEigenvalues(numModes);
- for (int i = 1; i <= numModes; i++) {
- theEigenvalues[i-1] = theSOE->getEigenvalue(i);
- theModel->setEigenvector(i, theSOE->getEigenvector(i));
- }
- theModel->setEigenvalues(theEigenvalues);
-
- return 0;
-}
-
-int
-StandardEigenAlgo::sendSelf(int cTag, Channel &theChannel)
-{
- return 0;
-}
-
-int
-StandardEigenAlgo::recvSelf(int cTag, Channel &theChannel,
- FEM_ObjectBroker &theBroker)
-{
- return 0;
-}
-
-void
-StandardEigenAlgo::Print(OPS_Stream &s, int flag)
-{
- s << "\tStandardEigenAlgo\n";
-}
diff --git a/docs/library/analysis/Eigen_Analysis/StandardEigenAlgo.md b/docs/library/analysis/Eigen_Analysis/StandardEigenAlgo.md
deleted file mode 100644
index f2ae839e97..0000000000
--- a/docs/library/analysis/Eigen_Analysis/StandardEigenAlgo.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# StandardEigenAlgo
-
-// $Revision: 1.2 $
-// $Date: 2003-02-14 23:00:41 $
-// $Source: /usr/local/cvs/OpenSees/SRC/analysis/algorithm/eigenAlgo/StandardEigenAlgo.h,v $
-
-// Written: MHS
-// Created: Oct 2001
-//
-StandardEigenAlgo is a class which performs a eigen solution algorithm
-to solve standard eigenvalue equations. It is not expected that
-this class will have subclasses.
-
-```cpp
-#include
-
-class StandardEigenAlgo : public EigenAlgorithm
-{
- public:
- StandardEigenAlgo();
- virtual ~StandardEigenAlgo();
-
- virtual int solveCurrentStep(int numModes);
-
- virtual int sendSelf(int commitTag, Channel &theChannel);
- virtual int recvSelf(int commitTag, Channel &theChannel,
- FEM_ObjectBroker &theBroker);
-
- virtual void Print(OPS_Stream &s, int flag = 0);
-
- protected:
-
- private:
-
-};
-```
-
diff --git a/docs/library/analysis/Eigen_Analysis/index.md b/docs/library/analysis/Eigen_Analysis/index.md
deleted file mode 100644
index f3b4aad1c1..0000000000
--- a/docs/library/analysis/Eigen_Analysis/index.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Eigen Analysis
-
- eigen numEigenvalues?
-
-To perform a generalized eigenvalue problem to determine the first
-numEigenvalues eigenvalues and eigenvectors. The eigenvectors are stored
-at the nodes and can be printed out. Currently each invocation of this
-command constructs a new EigenvalueAnalysis object, each with new
-component objects: a ConstraintHandler of type Plain, an EigenvalueSOE
-and solver of type BandArpackSOE and BandArpackSolver and an algorithm
-of type FrequencyAlgo. These objects are destroyed when the command has
-finished. This will change.
diff --git a/docs/library/analysis/StaticAnalysis/StagedLoadControl.md b/docs/library/analysis/StaticAnalysis/StagedLoadControl.md
deleted file mode 100644
index 6387e7ee96..0000000000
--- a/docs/library/analysis/StaticAnalysis/StagedLoadControl.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# StagedLoadControl
-
From b143c74d8fa66e6494b61528db7a4c9854018100 Mon Sep 17 00:00:00 2001
From: claudio perez <50180406+claudioperez@users.noreply.github.com>
Date: Fri, 23 Aug 2024 10:21:35 -0700
Subject: [PATCH 3/3] cmp
---
...Concrete3D_Ex_CyclicUniaxialCompression.py | 125 ------------------
tests/openseespy/ASDConcrete3D_Ex_Surface.py | 113 ----------------
tests/openseespy/ASDConcrete3D_MakeLaws.py | 120 -----------------
3 files changed, 358 deletions(-)
delete mode 100644 tests/openseespy/ASDConcrete3D_Ex_CyclicUniaxialCompression.py
delete mode 100644 tests/openseespy/ASDConcrete3D_Ex_Surface.py
delete mode 100644 tests/openseespy/ASDConcrete3D_MakeLaws.py
diff --git a/tests/openseespy/ASDConcrete3D_Ex_CyclicUniaxialCompression.py b/tests/openseespy/ASDConcrete3D_Ex_CyclicUniaxialCompression.py
deleted file mode 100644
index 7807d2a656..0000000000
--- a/tests/openseespy/ASDConcrete3D_Ex_CyclicUniaxialCompression.py
+++ /dev/null
@@ -1,125 +0,0 @@
-from opensees import openseespy as ops
-from ASDConcrete3D_MakeLaws import make as make_concrete
-from matplotlib import pyplot as plt
-import numpy as np
-
-# the 2D model
-ops.wipe()
-ops.model('basic', '-ndm', 2, '-ndf', 2)
-
-# the material (units = N, mm)
-E = 30000.0
-v = 0.2
-fc = 30.0
-ft = fc/10.0
-ec = 2.0*fc/E
-Gt = 0.073*fc**0.18
-Gc = 2.0*Gt*(fc/ft)**2
-Te, Ts, Td, Ce, Cs, Cd, lch_ref = make_concrete(E, ft, fc, ec, Gt, Gc)
-ops.nDMaterial('ASDConcrete3D', 1,
- E, v, # elasticity
- '-Te', *Te, '-Ts', *Ts, '-Td', *Td, # tensile law
- '-Ce', *Ce, '-Cs', *Cs, '-Cd', *Cd, # compressive law
- '-autoRegularization', lch_ref # use auto regularization: the input Gt and Gc are NOT specific fracture energies
- )
-
-# the plane stress
-ops.nDMaterial('PlaneStress', 2, 1)
-
-# a triangle with lch = 250
-lch = 250.0
-ops.node(1, 0, 0)
-ops.node(2, lch, 0)
-ops.node(3, 0, lch)
-ops.element('tri31', 1, 1, 2, 3, 1.0, 'PlaneStress', 2)
-
-# fixity
-ops.fix(1, 1, 1)
-ops.fix(2, 0, 1)
-ops.fix(3, 1, 0)
-
-# a simple ramp
-ops.timeSeries('Linear', 1)
-
-# imposed strain
-emax = 0.01
-cycles = np.linspace(0.0, emax, 10)
-
-# begin plot
-SX = [0.0]
-SY = [0.0]
-PX = [0.0]
-PY = [0.0]
-plt.ion()
-fig, ax = plt.subplots(1,1)
-ax.grid(linestyle=':')
-ax.set(xlim=[-emax*1.1, emax*0.1],ylim=[-fc*1.2, fc*0.1])
-ax.set_title('Cyclic uniaxial compression')
-ax.set_xlabel('\N{GREEK SMALL LETTER EPSILON}\N{SUBSCRIPT ONE}\N{SUBSCRIPT ONE}')
-ax.set_ylabel('\N{GREEK SMALL LETTER SIGMA}\N{SUBSCRIPT ONE}\N{SUBSCRIPT ONE}')
-the_line, = ax.plot(SX, SY, '-k', linewidth=2.0)
-the_tip, = ax.plot(PX, PY, 'or', fillstyle='full', markersize=8)
-
-# some default analysis settings
-ops.constraints('Transformation')
-ops.numberer('Plain')
-ops.system('FullGeneral')
-ops.test('NormDispIncr', 1.0e-8, 10, 0)
-ops.algorithm('Newton')
-
-for icycle in range(1, len(cycles)):
- # get current plastic strain (if any)
- ep = -ops.nodeDisp(2)[0]/lch
- # impose strain
- current_strain = cycles[icycle]
- ops.pattern('Plain', 1, 1)
- ops.sp(2, 1, -current_strain*lch)
- # load
- # start from a percentage = ep/current_strain
- time_start = ep/current_strain
- ops.setTime(time_start)
- num_incr = max(1, int((current_strain-ep)/emax*100.0))
- time_incr = (1.0-time_start)/float(num_incr)
- ops.integrator('LoadControl', time_incr)
- ops.analysis('Static')
- for i in range(num_incr):
- ok = ops.analyze(1)
- if ok == 0:
- strain = ops.eleResponse(1, 'material', 1, 'strain')
- stress = ops.eleResponse(1, 'material', 1, 'stress')
- SX.append(strain[0])
- SY.append(stress[0])
- the_line.set_xdata(SX)
- the_line.set_ydata(SY)
- PX = [SX[-1]]
- PY = [SY[-1]]
- the_tip.set_xdata(PX)
- the_tip.set_ydata(PY)
- fig.canvas.draw()
- fig.canvas.flush_events()
- else:
- break
- if ok != 0:
- break
- # unload
- ops.remove('pattern', 1)
- ops.setTime(0.0)
- ops.integrator('LoadControl', 1.0)
- ops.analysis('Static')
- ok = ops.analyze(1)
- # plot the unload point
- strain = ops.eleResponse(1, 'material', 1, 'strain')
- stress = ops.eleResponse(1, 'material', 1, 'stress')
- SX.append(strain[0])
- SY.append(stress[0])
- the_line.set_xdata(SX)
- the_line.set_ydata(SY)
- PX = [SX[-1]]
- PY = [SY[-1]]
- the_tip.set_xdata(PX)
- the_tip.set_ydata(PY)
- fig.canvas.draw()
- fig.canvas.flush_events()
-
-plt.ioff()
-plt.show()
diff --git a/tests/openseespy/ASDConcrete3D_Ex_Surface.py b/tests/openseespy/ASDConcrete3D_Ex_Surface.py
deleted file mode 100644
index d8e839db64..0000000000
--- a/tests/openseespy/ASDConcrete3D_Ex_Surface.py
+++ /dev/null
@@ -1,113 +0,0 @@
-from opensees import openseespy as ops
-from math import pi, sin, cos
-from matplotlib import pyplot as plt
-
-def analyze_dir (dX, dY):
-
- # info
- print("Analyze direction ({:8.3g}, {:8.3g})".format(dX, dY))
-
- # the 2D model
- ops.wipe()
- ops.model('basic', '-ndm', 2, '-ndf', 2)
-
- # the isotropic material
- E = 30000.0
- v = 0.2
- sig0 = 30.0
- # define a perfect bilinear behavior in tension and compression to record the failure surface
- fc = sig0
- ec = fc/E
- ft = fc/10.0
- et = ft/E
- ops.nDMaterial('ASDConcrete3D', 1, E, v,
- '-Ce', 0.0, ec, ec+1,
- '-Cs', 0.0, fc, fc,
- '-Cd', 0.0, 0.0, 0.0,
- '-Te', 0.0, et, et+1,
- '-Ts', 0.0, ft, ft,
- '-Td', 0.0, 0.0, 0.0)
-
- # the plane stress
- ops.nDMaterial('PlaneStress', 2, 1)
-
- # a triangle
- ops.node(1, 0, 0)
- ops.node(2, 1, 0)
- ops.node(3, 0, 1)
- ops.element('tri31', 1, 1, 2, 3, 1.0, 'PlaneStress', 2)
-
- # fixity
- ops.fix(1, 1, 1)
- ops.fix(2, 0, 1)
- ops.fix(3, 1, 0)
-
- # a simple ramp
- ops.timeSeries('Linear', 1, '-factor', 2.0*sig0)
-
- # imposed stresses in the current direction
- ops.pattern('Plain', 1, 1)
- ops.load(2, dX, 0.0)
- ops.load(3, 0.0, dY)
-
- # analyze
- ops.constraints('Transformation')
- ops.numberer('Plain')
- ops.system('FullGeneral')
- ops.test('NormDispIncr', 1.0e-6, 10, 0)
- ops.algorithm('Newton')
-
- dLambda = 0.1
- dLambdaMin = 0.0001
- Lambda = 0.0
- sX = 0.0
- sY = 0.0
- while True:
- ops.integrator('LoadControl', dLambda)
- ops.analysis('Static')
- ok = ops.analyze(1)
- if ok == 0:
- stress = ops.eleResponse(1, 'material', 1, 'stress')
- sX = stress[0]
- sY = stress[1]
- Lambda += dLambda
- if Lambda > 0.9999:
- break
- else:
- dLambda /= 2.0
- if dLambda < dLambdaMin:
- break
-
- # done
- return (sX, sY)
-
-# number of subdivisions
-NDiv = 80
-NP = NDiv+1
-dAngle = 2.0*pi/NDiv
-SX = [0.0]*NP
-SY = [0.0]*NP
-
-plt.ion()
-fig, ax = plt.subplots(1,1)
-ax.set(xlim=[-45, 10],ylim=[-45, 10])
-ax.plot([-1000,1000],[0,0],color='black',linewidth=0.5) # S1
-ax.plot([0,0],[-1000,1000],color='black',linewidth=0.5) # S2
-ax.grid(linestyle=':')
-ax.set_aspect('equal', 'box')
-
-the_line, = ax.plot(SX, SY, '-k', linewidth=2.0)
-for i in range(NP):
- angle = float(i)*dAngle
- dX = cos(angle)
- dY = sin(angle)
- a,b = analyze_dir(dX, dY)
- SX[i] = a
- SY[i] = b
- the_line.set_xdata(SX)
- the_line.set_ydata(SY)
- fig.canvas.draw()
- fig.canvas.flush_events()
-
-plt.ioff()
-plt.show()
diff --git a/tests/openseespy/ASDConcrete3D_MakeLaws.py b/tests/openseespy/ASDConcrete3D_MakeLaws.py
deleted file mode 100644
index 26cc9ed79f..0000000000
--- a/tests/openseespy/ASDConcrete3D_MakeLaws.py
+++ /dev/null
@@ -1,120 +0,0 @@
-import math
-
-def _bezier3(xi, x0, x1, x2, y0, y1, y2):
- '''
- a quadratic bezier curve. gives the yi at xi, from 3 control points
- '''
- A = x0 - 2.0 * x1 + x2
- B = 2.0 * (x1 - x0)
- C = x0 - xi
- if abs(A) < 1.0e-12:
- x1 = x1 + 1.0E-6 * (x2 - x0)
- A = x0 - 2.0 * x1 + x2
- B = 2.0 * (x1 - x0)
- C = x0 - xi
- if A == 0.0:
- return 0.0
- D = B * B - 4.0 * A * C
- t = (math.sqrt(D) - B) / (2.0 * A)
- return (y0 - 2.0 * y1 + y2) * t * t + 2.0 * (y1 - y0) * t + y0
-
-def _get_lch_ref(E,ft,Gt,fc,ec,Gc):
- '''
- automatically computes a dummy reference characteristic length
- when Gt and Gc are computed from equations
- '''
-
- # min lch for tension
- et_el = ft/E # no damage at peak
- Gt_min = ft*et_el/2.0
- hmin_t = Gt/Gt_min/100.0
-
- # min lch for compression
- ec1 = fc/E
- ec_pl = (ec-ec1)*0.4 + ec1
- Gc_min = fc*(ec-ec_pl)/2.0
- hmin_c = Gc/Gc_min/100.0
-
- # return the minimum
- return min(hmin_t, hmin_c)
-
-def _make_tension(E, ft, Gt):
- '''
- a trilinar hardening-softening law for tensile response
- '''
- f0 = ft*0.9
- f1 = ft
- e0 = f0/E
- e1 = f1/E*1.5
- ep = e1-f1/E
- f2 = ft/5.0
- f3 = 1.0e-3*ft
- w2 = Gt/ft
- w3 = 5.0*w2
- e2 = w2 + f2/E + ep
- if e2 <= e1: e2 = e1*1.001
- e3 = w3 + f3/E + ep
- if e3 <= e2: e3 = e2*1.001
- e4 = e3*10.0
- Te = [0.0, e0, e1, e2, e3, e4] # total strain points
- Ts = [0.0, f0, f1, f2, f3, f3] # nominal stress points
- Td = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] # initialize damage list
- Tpl = [0.0, 0.0, ep, e2*0.9, e3*0.8, e3*0.8] # desired values of equivalent plastic strains
- for i in range(2, len(Te)):
- xi = Te[i]
- si = Ts[i]
- xipl = Tpl[i]
- xipl_max = xi-si/E
- xipl = min(xipl, xipl_max)
- qi = (xi-xipl)*E
- Td[i] = 1.0-si/qi # compute damage
- return (Te, Ts, Td)
-
-def _make_compression(E, fc, ec, Gc):
- '''
- a quadratic hardening followed by linear softening for compressive response
- '''
- fc0 = fc/2.0
- ec0 = fc0/E
- ec1 = fc/E
- fcr = fc*1.0e-1
- ec_pl = (ec-ec1)*0.4 + ec1
- Gc1 = fc*(ec-ec_pl)/2.0
- Gc2 = max(Gc1*1.0e-2, Gc-Gc1)
- ecr = ec + 2.0*Gc2/(fc+fcr)
- Ce = [0.0, ec0] # total strain points
- Cs = [0.0, fc0] # nominal stress points
- Cpl = [0.0, 0.0] # desired values of equivalent plastic strains
- nc = 10
- dec = (ec-ec0)/(nc-1)
- for i in range(nc-1):
- iec = ec0+(i+1.0)*dec
- Ce.append(iec)
- Cs.append(_bezier3(iec, ec0, ec1, ec, fc0, fc, fc))
- Cpl.append(Cpl[-1]+(iec-Cpl[-1])*0.7)
- # end of linear softening - begin residual plateau
- Ce.append(ecr)
- Cs.append(fcr)
- Cpl.append(Cpl[-1] + (ecr-Cpl[-1])*0.7)
- # extend to make a plateau
- Ce.append(ecr+ec0)
- Cs.append(fcr)
- Cpl.append(Cpl[-1])
- # compute damage now
- Cd = [0.0]*len(Ce)
- for i in range(2, len(Ce)):
- xi = Ce[i]
- si = Cs[i]
- xipl = Cpl[i]
- xipl_max = xi-si/E
- xipl = min(xipl, xipl_max)
- qi = (xi-xipl)*E
- Cd[i] = 1.0-si/qi # compute damage
- # Done
- return (Ce, Cs, Cd)
-
-def make(E, ft, fc, ec, Gt, Gc):
- lch_ref = _get_lch_ref(E, ft, Gt, fc, ec, Gc)
- Te, Ts, Td = _make_tension(E, ft, Gt/lch_ref)
- Ce, Cs, Cd = _make_compression(E, fc, ec, Gc/lch_ref)
- return (Te, Ts, Td, Ce, Cs, Cd, lch_ref)
\ No newline at end of file