Skip to content

Commit d4b02b8

Browse files
Merge branch 'OpenSees:master' into master
1 parent dd1c084 commit d4b02b8

148 files changed

Lines changed: 5873 additions & 11227 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

DEVELOPER/core/classTags.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -432,9 +432,12 @@
432432
#define ND_TAG_PM4Sand 14021
433433
// PM4Silt material - L.Chen
434434
#define ND_TAG_PM4Silt 14022
435-
// J2CyclicBoundingSurface material - D.Turello
436-
#define ND_TAG_J2CyclicBoundingSurface 14023
437-
435+
// J2CyclicBoundingSurface material - P. Arduino, D.Turello
436+
#define ND_TAG_J2CyclicBoundingSurface 14023
437+
#define ND_TAG_J2CyclicBoundingSurface3D 14024
438+
#define ND_TAG_J2CyclicBoundingSurfacePlaneStrain 14025
439+
// LinearElasticGGmax material - P. Arduino
440+
#define ND_TAG_LinearElasticGGmax 14026
438441
// MultiaxialCyclicPlasticity, add by Gang Wang
439442
#define ND_TAG_MultiaxialCyclicPlasticity 10031
440443
#define ND_TAG_MultiaxialCyclicPlasticity3D 10032

OTHER/LAPACK/CMakeLists.txt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,26 @@ target_sources(LAPACK PUBLIC
143143
dlatrs.f
144144
dla_rpvgrw.f
145145
dla_gerpvgrw.f
146+
147+
dsygvx.f
148+
dsygst.f
149+
dsygs2.f
150+
dsyevx.f
151+
dormtr.f
152+
dorgtr.f
153+
dorgql.f
154+
dorg2l.f
155+
dormql.f
156+
dorm2l.f
157+
dlansy.f
158+
dlarf1l.f
159+
iladlr.f
160+
iladlc.f
161+
disnan.f
162+
dlaisnan.f
163+
dsytrd.f
164+
dlatrd.f
165+
dsytd2.f
146166
)
147167

148168
add_library(LAPACK_C)

OTHER/LAPACK/Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ DOBJ = dgeqr2.o dlabad.o dlacon.o dlacpy.o dladiv.o dlae2.o dlaev2.o\
2020
chla_transtype.o dla_gercond.o dla_wwaddw.o ilaprec.o ilatrans.o dgecon.o \
2121
dla_geamv.o dlacn2.o dla_lin_berr.o drscl.o dlatrs.o dla_rpvgrw.o dla_gerpvgrw.o \
2222
BLAS_dgemv2_x.o BLAS_dgemv2_x-f2c.o \
23-
BLAS_dgemv_x.o BLAS_dgemv_x-f2c.o BLAS_error.o BLAS_error.o
23+
BLAS_dgemv_x.o BLAS_dgemv_x-f2c.o BLAS_error.o BLAS_error.o \
24+
dsygvx.o dsygst.o dsygs2.o dsyevx.o dormtr.o dorgtr.o dorgql.o \
25+
dorg2l.o dormql.o dorm2l.o dlansy.o dlarf1l.o iladlr.o iladlc.o \
26+
disnan.o dlaisnan.o dsytrd.o dlatrd.o dsytd2.o
2427

2528

2629

SRC/Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1009,6 +1009,7 @@ MATERIAL_LIBS = $(FE)/material/Material.o \
10091009
$(FE)/material/nD/UWmaterials/J2CyclicBoundingSurfacePlaneStrain.o \
10101010
$(FE)/material/nD/UWmaterials/PM4Sand.o \
10111011
$(FE)/material/nD/UWmaterials/PM4Silt.o \
1012+
$(FE)/material/nD/UWmaterials/LinearElasticGGmax.o \
10121013
$(FE)/material/nD/UANDESmaterials/SAniSandMS.o \
10131014
$(FE)/material/nD/UANDESmaterials/SAniSandMS3D.o \
10141015
$(FE)/material/nD/UANDESmaterials/SAniSandMSPlaneStrain.o \
@@ -1270,7 +1271,9 @@ SequentialSysOfEqn_LIBS = $(FE)/system_of_eqn/linearSOE/LinearSOE.o \
12701271
$(FE)/system_of_eqn/linearSOE/umfGEN/UmfpackGenLinSOE.o \
12711272
$(FE)/system_of_eqn/linearSOE/umfGEN/UmfpackGenLinSolver.o \
12721273
$(FE)/system_of_eqn/eigenSOE/FullGenEigenSOE.o \
1273-
$(FE)/system_of_eqn/eigenSOE/FullGenEigenSolver.o
1274+
$(FE)/system_of_eqn/eigenSOE/FullGenEigenSolver.o \
1275+
$(FE)/system_of_eqn/eigenSOE/SymmGeneralizedEigenSOE.o \
1276+
$(FE)/system_of_eqn/eigenSOE/SymmGeneralizedEigenSolver.o
12741277

12751278
ifeq ($(PROGRAMMING_MODE), PARALLEL_INTERPRETERS)
12761279
SysOfEqn_LIBS = $(SequentialSysOfEqn_LIBS) \

SRC/actor/objectBroker/FEM_ObjectBrokerAllClasses.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@
297297
#include "J2CyclicBoundingSurface.h"
298298
#include "J2CyclicBoundingSurface3D.h"
299299
#include "J2CyclicBoundingSurfacePlaneStrain.h"
300+
#include "UWmaterials/LinearElasticGGmax.h"
300301
#include "UWmaterials/InitialStateAnalysisWrapper.h"
301302
#include "stressDensityModel/stressDensity.h"
302303
#include "InitStressNDMaterial.h"
@@ -2378,6 +2379,9 @@ FEM_ObjectBrokerAllClasses::getNewNDMaterial(int classTag)
23782379
case ND_TAG_J2CyclicBoundingSurfacePlaneStrain:
23792380
return new J2CyclicBoundingSurfacePlaneStrain();
23802381

2382+
case ND_TAG_LinearElasticGGmax:
2383+
return new LinearElasticGGmax();
2384+
23812385
case ND_TAG_InitialStateAnalysisWrapper:
23822386
return new InitialStateAnalysisWrapper();
23832387
case ND_TAG_stressDensity:

SRC/analysis/analysis/SDFAnalysis.cpp

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,21 @@ int OPS_sdfResponse()
3131

3232
int numOptionalArgs = 0;
3333
int numArgs = OPS_GetNumRemainingInputArgs();
34+
double t_end = 0.0; bool t_end_specified = false;
3435
while (OPS_GetNumRemainingInputArgs() > 0) {
3536
std::string type = OPS_GetString();
37+
if (type == "-tend") {
38+
numOptionalArgs++;
39+
if (OPS_GetNumRemainingInputArgs() > 0) {
40+
numData = 1;
41+
if (OPS_GetDoubleInput(&numData, &t_end) < 0) {
42+
opserr << "ERROR sdfResponse - failed to read tend" << endln;
43+
return 0;
44+
}
45+
numOptionalArgs++;
46+
t_end_specified = true;
47+
}
48+
}
3649
if (type == "-uresid" || type == "-uresidual") {
3750
numOptionalArgs++;
3851
if (OPS_GetNumRemainingInputArgs() > 0) {
@@ -64,8 +77,8 @@ int OPS_sdfResponse()
6477

6578
if (numArgs < 7 || numArgs > 8) {
6679
opserr << "Incorrect number of arguments to sdfResponse --";
67-
opserr << "m, zeta, k, Fy, alpha, dtF, filename, dt, <-uresidual, uresid, -umaxprev, umaxp>" << endln;
68-
opserr << "m, zeta, k, Fy, alpha, tsTag, dt, <-uresidual, uresid, -umaxprev, umaxp>" << endln;
80+
opserr << "m, zeta, k, Fy, alpha, dtF, filename, dt, <-uresidual, uresid, -umaxprev, umaxp, -tend, tend>" << endln;
81+
opserr << "m, zeta, k, Fy, alpha, tsTag, dt, <-uresidual, uresid, -umaxprev, umaxp, -tend, tend>" << endln;
6982
return -1;
7083
}
7184

@@ -171,7 +184,7 @@ int OPS_sdfResponse()
171184
int i = 0;
172185
double ft, u=0, du, v, a, fs, zs, ftrial, kT, kTeff, dg, phat, R, R0, accel;
173186
double time = accelSeries->getStartTime();
174-
double Tend = accelSeries->getDuration();
187+
double Tend = t_end_specified ? t_end : accelSeries->getDuration();
175188
while (time < Tend) {
176189

177190
ft = accelSeries->getFactor(time);

SRC/classTags.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,14 @@
5151
#define EigenSOE_TAGS_FullGenEigenSOE 4
5252
#define EigenSOE_TAGS_ArpackSOE 5
5353
#define EigenSOE_TAGS_GeneralArpackSOE 6
54+
#define EigenSOE_TAGS_SymmGeneralizedEigenSOE 7
5455
#define EigenSOLVER_TAGS_BandArpackSolver 1
5556
#define EigenSOLVER_TAGS_SymArpackSolver 2
5657
#define EigenSOLVER_TAGS_SymBandEigenSolver 3
5758
#define EigenSOLVER_TAGS_FullGenEigenSolver 4
5859
#define EigenSOLVER_TAGS_ArpackSolver 5
5960
#define EigenSOLVER_TAGS_GeneralArpackSolver 6
61+
#define EigenSOLVER_TAGS_SymmGeneralizedEigenSolver 7
6062

6163
#define EigenALGORITHM_TAGS_Frequency 1
6264
#define EigenALGORITHM_TAGS_Standard 2
@@ -520,11 +522,12 @@
520522
#define ND_TAG_PM4Sand 14021
521523
// PM4Silt material - L.Chen
522524
#define ND_TAG_PM4Silt 14022
523-
// J2CyclicBoundingSurface material - P. Arduino, D.Turello
525+
// J2CyclicBoundingSurface material - P. Arduino
524526
#define ND_TAG_J2CyclicBoundingSurface 14023
525527
#define ND_TAG_J2CyclicBoundingSurface3D 14024
526528
#define ND_TAG_J2CyclicBoundingSurfacePlaneStrain 14025
527-
529+
// LinearElasticGGmax material - P. Arduino
530+
#define ND_TAG_LinearElasticGGmax 14026
528531
// MultiaxialCyclicPlasticity, add by Gang Wang
529532
#define ND_TAG_MultiaxialCyclicPlasticity 10031
530533
#define ND_TAG_MultiaxialCyclicPlasticity3D 10032

SRC/domain/constraints/RigidDiaphragm.cpp

Lines changed: 25 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -174,52 +174,45 @@ RigidDiaphragm::RigidDiaphragm(Domain &theDomain, int nR, ID &nC,
174174

175175
// rigid diaphragm in xy plane
176176
if (perpPlaneConstrained == 2) {
177+
178+
// dof corresponding to dX, dY and theta Z (0,1,5)
179+
id(0) = 0; id(1) = 1; id(2) = 5;
177180

181+
// set up transformation matrix
182+
mat(0,2) = - deltaY;
183+
mat(1,2) = deltaX;
184+
178185
// check constrained node in xy plane with retained node
179-
if (deltaZ == 0.0) {
180-
181-
// dof corresponding to dX, dY and theta Z (0,1,5)
182-
id(0) = 0; id(1) = 1; id(2) = 5;
183-
184-
// set up transformation matrix
185-
mat(0,2) = - deltaY;
186-
mat(1,2) = deltaX;
187-
188-
} else
189-
opserr << "RigidDiaphragm::RigidDiaphragm - ignoring constrained Node " << ndC << ", not in xy plane\n";
186+
if (deltaZ != 0.0)
187+
opserr << "RigidDiaphragm::RigidDiaphragm - proceeding with constrained Node " << ndC << " not in xy plane\n";
190188

191189
// rigid diaphragm in xz plane
192190
} else if (perpPlaneConstrained == 1) {
193191

194-
// check constrained node in xy plane with retained node
195-
if (deltaY == 0.0) {
196-
197-
// dof corresponding to dX, dZ and theta Y (0,2,4)
198-
id(0) = 0; id(1) = 2; id(2) = 4;
192+
// dof corresponding to dX, dZ and theta Y (0,2,4)
193+
id(0) = 0; id(1) = 2; id(2) = 4;
199194

200-
// set up transformation matrix
201-
mat(0,2) = deltaZ;
202-
mat(1,2) = -deltaX;
195+
// set up transformation matrix
196+
mat(0,2) = deltaZ;
197+
mat(1,2) = -deltaX;
203198

204-
} else
205-
opserr << "RigidDiaphragm::RigidDiaphragm - ignoring constrained Node " << ndC << ", not in xz plane\n";
199+
// check constrained node in xy plane with retained node
200+
if (deltaY != 0.0)
201+
opserr << "RigidDiaphragm::RigidDiaphragm - proceeding with constrained Node " << ndC << " not in xz plane\n";
206202

207203
// rigid diaphragm in yz plane
208204
} else {
209205

210-
// check constrained node in xy plane with retained node
211-
if (deltaX == 0.0) {
212-
213-
// dof corresponding to dY, dZ and theta X (1,2,3)
214-
id(0) = 1; id(1) = 2; id(2) = 3;
206+
// dof corresponding to dY, dZ and theta X (1,2,3)
207+
id(0) = 1; id(1) = 2; id(2) = 3;
215208

216-
// set up transformation matrix
217-
mat(0,2) = -deltaZ;
218-
mat(1,2) = deltaY;
209+
// set up transformation matrix
210+
mat(0,2) = -deltaZ;
211+
mat(1,2) = deltaY;
219212

220-
} else
221-
opserr << "RigidDiaphragm::RigidDiaphragm - ignoring constrained Node " << ndC <<
222-
", not in xz plane\n";
213+
// check constrained node in xy plane with retained node
214+
if (deltaX != 0.0)
215+
opserr << "RigidDiaphragm::RigidDiaphragm - proceeding with constrained Node " << ndC << " not in yz plane\n";
223216
}
224217
}
225218
else // node not in proper space

SRC/interpreter/OpenSeesCommands.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
7979
#include <SymBandEigenSOE.h>
8080
#include <FullGenEigenSolver.h>
8181
#include <FullGenEigenSOE.h>
82+
#include <SymmGeneralizedEigenSolver.h>
83+
#include <SymmGeneralizedEigenSOE.h>
8284
#include <ArpackSOE.h>
8385
#include <LoadControl.h>
8486
#include <CTestPFEM.h>
@@ -343,6 +345,11 @@ OpenSeesCommands::eigen(int typeSolver, double shift,
343345
FullGenEigenSolver *theEigenSolver = new FullGenEigenSolver();
344346
theEigenSOE = new FullGenEigenSOE(*theEigenSolver, *theAnalysisModel);
345347

348+
} else if (typeSolver == EigenSOE_TAGS_SymmGeneralizedEigenSOE) {
349+
350+
SymmGeneralizedEigenSolver *theEigenSolver = new SymmGeneralizedEigenSolver();
351+
theEigenSOE = new SymmGeneralizedEigenSOE(*theEigenSolver, *theAnalysisModel);
352+
346353
} else {
347354

348355
theEigenSOE = new ArpackSOE(shift);
@@ -2681,6 +2688,12 @@ int OPS_eigenAnalysis()
26812688
(strcmp(type,"-symmBandLapackEigen") == 0))
26822689
typeSolver = EigenSOE_TAGS_SymBandEigenSOE;
26832690

2691+
else if ((strcmp(type,"symmGenLapack") == 0) ||
2692+
(strcmp(type,"-symmGenLapack") == 0) ||
2693+
(strcmp(type,"symmGenLapackEigen") == 0) ||
2694+
(strcmp(type,"-symmGenLapackEigen") == 0))
2695+
typeSolver = EigenSOE_TAGS_SymmGeneralizedEigenSOE;
2696+
26842697
else if ((strcmp(type, "fullGenLapack") == 0) ||
26852698
(strcmp(type, "-fullGenLapack") == 0) ||
26862699
(strcmp(type, "fullGenLapackEigen") == 0) ||

SRC/interpreter/OpenSeesNDMaterialCommands.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ void* OPS_BeamFiberMaterial2d();
7272
void* OPS_BeamFiberMaterial2dPS();
7373
void* OPS_PM4SandMaterial();
7474
void* OPS_PM4SiltMaterial();
75+
void* OPS_LinearElasticGGmaxMaterial();
7576
void* OPS_UVCplanestress();
7677
void* OPS_UVCmultiaxial();
7778
void* OPS_PressureDependMultiYield03();
@@ -197,7 +198,8 @@ namespace {
197198
nDMaterialsMap.insert(std::make_pair("BeamFiber2d", &OPS_BeamFiberMaterial2d));
198199
nDMaterialsMap.insert(std::make_pair("BeamFiber2dPS", &OPS_BeamFiberMaterial2dPS));
199200
nDMaterialsMap.insert(std::make_pair("PM4Sand", &OPS_PM4SandMaterial));
200-
nDMaterialsMap.insert(std::make_pair("PM4Silt", &OPS_PM4SiltMaterial));
201+
nDMaterialsMap.insert(std::make_pair("PM4Silt", &OPS_PM4SiltMaterial));
202+
nDMaterialsMap.insert(std::make_pair("LinearElasticGGmax", &OPS_LinearElasticGGmaxMaterial));
201203
nDMaterialsMap.insert(std::make_pair("UVCplanestress", &OPS_UVCplanestress));
202204
nDMaterialsMap.insert(std::make_pair("UVCmultiaxial", &OPS_UVCmultiaxial));
203205
nDMaterialsMap.insert(std::make_pair("PressureDependMultiYield03", &OPS_PressureDependMultiYield03));

0 commit comments

Comments
 (0)