Skip to content

Commit

Permalink
Merge pull request #416 from mhscott/fbcSubdivide
Browse files Browse the repository at this point in the history
Static allocation of subdivide arrays
  • Loading branch information
mhscott committed Aug 8, 2020
2 parents 126a388 + 5c971ec commit 8c2fb29
Show file tree
Hide file tree
Showing 9 changed files with 24 additions and 134 deletions.
22 changes: 0 additions & 22 deletions SRC/element/forceBeamColumn/ForceBeamColumn2d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -423,17 +423,6 @@ ForceBeamColumn2d::ForceBeamColumn2d():

theNodes[0] = 0;
theNodes[1] = 0;

// if (vsSubdivide == 0)
// vsSubdivide = new Vector [maxNumSections];
//if (fsSubdivide == 0)
// fsSubdivide = new Matrix [maxNumSections];
//if (SsrSubdivide == 0)
// SsrSubdivide = new Vector [maxNumSections];
//if (!vsSubdivide || !fsSubdivide || !SsrSubdivide) {
// opserr << "ForceBeamColumn2d::ForceBeamColumn2d() -- failed to allocate Subdivide arrays";
// exit(-1);
//}
}

// constructor which takes the unique element tag, sections,
Expand Down Expand Up @@ -476,17 +465,6 @@ ForceBeamColumn2d::ForceBeamColumn2d (int tag, int nodeI, int nodeJ,
}

this->setSectionPointers(numSec, sec);

//if (vsSubdivide == 0)
// vsSubdivide = new Vector [maxNumSections];
//if (fsSubdivide == 0)
// fsSubdivide = new Matrix [maxNumSections];
//if (SsrSubdivide == 0)
// SsrSubdivide = new Vector [maxNumSections];
//if (!vsSubdivide || !fsSubdivide || !SsrSubdivide) {
// opserr << "ForceBeamColumn2d::ForceBeamColumn2d() -- failed to allocate Subdivide arrays";
// exit(-1);
//}
}

// ~ForceBeamColumn2d():
Expand Down
28 changes: 3 additions & 25 deletions SRC/element/forceBeamColumn/ForceBeamColumn2dThermal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,9 @@ Matrix ForceBeamColumn2dThermal::theMatrix(6,6);
Vector ForceBeamColumn2dThermal::theVector(6);
double ForceBeamColumn2dThermal::workArea[200];

Vector *ForceBeamColumn2dThermal::vsSubdivide = 0;
Matrix *ForceBeamColumn2dThermal::fsSubdivide = 0;
Vector *ForceBeamColumn2dThermal::SsrSubdivide = 0;
Vector ForceBeamColumn2dThermal::vsSubdivide[maxNumSections];
Matrix ForceBeamColumn2dThermal::fsSubdivide[maxNumSections];
Vector ForceBeamColumn2dThermal::SsrSubdivide[maxNumSections];

void* OPS_ForceBeamColumn2dThermal()
{
Expand Down Expand Up @@ -173,17 +173,6 @@ ForceBeamColumn2dThermal::ForceBeamColumn2dThermal():
{
theNodes[0] = 0;
theNodes[1] = 0;

if (vsSubdivide == 0)
vsSubdivide = new Vector [maxNumSections];
if (fsSubdivide == 0)
fsSubdivide = new Matrix [maxNumSections];
if (SsrSubdivide == 0)
SsrSubdivide = new Vector [maxNumSections];
if (!vsSubdivide || !fsSubdivide || !SsrSubdivide) {
opserr << "ForceBeamColumn2dThermal::ForceBeamColumn2dThermal() -- failed to allocate Subdivide arrays";
exit(-1);
}
}

// constructor which takes the unique element tag, sections,
Expand Down Expand Up @@ -228,17 +217,6 @@ ForceBeamColumn2dThermal::ForceBeamColumn2dThermal (int tag, int nodeI, int node
if(Vsth0==0)
Vsth0 = new Vector[maxNumSections];

if (vsSubdivide == 0)
vsSubdivide = new Vector [maxNumSections];
if (fsSubdivide == 0)
fsSubdivide = new Matrix [maxNumSections];
if (SsrSubdivide == 0)
SsrSubdivide = new Vector [maxNumSections];
if (!vsSubdivide || !fsSubdivide || !SsrSubdivide) {
opserr << "ForceBeamColumn2dThermal::ForceBeamColumn2dThermal() -- failed to allocate Subdivide arrays";
exit(-1);
}

for (int m=0; m<numSections; m++) {
Vsth0[m] = Vector(2);
Vsth0[m].Zero();
Expand Down
6 changes: 3 additions & 3 deletions SRC/element/forceBeamColumn/ForceBeamColumn2dThermal.h
Original file line number Diff line number Diff line change
Expand Up @@ -203,9 +203,9 @@ class ForceBeamColumn2dThermal: public Element
// following are added for subdivision of displacement increment
int maxSubdivisions; // maximum number of subdivisons of dv for local iterations

static Vector *vsSubdivide;
static Vector *SsrSubdivide;
static Matrix *fsSubdivide;
static Vector vsSubdivide[];
static Vector SsrSubdivide[];
static Matrix fsSubdivide[];
Vector *Vsth0;
//static int maxNumSections;

Expand Down
28 changes: 3 additions & 25 deletions SRC/element/forceBeamColumn/ForceBeamColumn3d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,9 @@ Matrix ForceBeamColumn3d::theMatrix(12,12);
Vector ForceBeamColumn3d::theVector(12);
double ForceBeamColumn3d::workArea[200];

Vector *ForceBeamColumn3d::vsSubdivide = 0;
Matrix *ForceBeamColumn3d::fsSubdivide = 0;
Vector *ForceBeamColumn3d::SsrSubdivide = 0;
Vector ForceBeamColumn3d::vsSubdivide[maxNumSections];
Matrix ForceBeamColumn3d::fsSubdivide[maxNumSections];
Vector ForceBeamColumn3d::SsrSubdivide[maxNumSections];

void* OPS_ForceBeamColumn3d()
{
Expand Down Expand Up @@ -195,17 +195,6 @@ ForceBeamColumn3d::ForceBeamColumn3d():

theNodes[0] = 0;
theNodes[1] = 0;

if (vsSubdivide == 0)
vsSubdivide = new Vector [maxNumSections];
if (fsSubdivide == 0)
fsSubdivide = new Matrix [maxNumSections];
if (SsrSubdivide == 0)
SsrSubdivide = new Vector [maxNumSections];
if (!vsSubdivide || !fsSubdivide || !SsrSubdivide) {
opserr << "ForceBeamColumn3d::ForceBeamColumn3d() -- failed to allocate Subdivide arrays";
exit(-1);
}
}

// constructor which takes the unique element tag, sections,
Expand Down Expand Up @@ -248,17 +237,6 @@ ForceBeamColumn3d::ForceBeamColumn3d (int tag, int nodeI, int nodeJ,
}

this->setSectionPointers(numSec, sec);

if (vsSubdivide == 0)
vsSubdivide = new Vector [maxNumSections];
if (fsSubdivide == 0)
fsSubdivide = new Matrix [maxNumSections];
if (SsrSubdivide == 0)
SsrSubdivide = new Vector [maxNumSections];
if (!vsSubdivide || !fsSubdivide || !SsrSubdivide) {
opserr << "ForceBeamColumn3d::ForceBeamColumn3d() -- failed to allocate Subdivide arrays";
exit(-1);
}
}

// ~ForceBeamColumn3d():
Expand Down
6 changes: 3 additions & 3 deletions SRC/element/forceBeamColumn/ForceBeamColumn3d.h
Original file line number Diff line number Diff line change
Expand Up @@ -209,9 +209,9 @@ class ForceBeamColumn3d: public Element
// following are added for subdivision of displacement increment
int maxSubdivisions; // maximum number of subdivisons of dv for local iterations

static Vector *vsSubdivide;
static Vector *SsrSubdivide;
static Matrix *fsSubdivide;
static Vector vsSubdivide[];
static Vector SsrSubdivide[];
static Matrix fsSubdivide[];
//static int maxNumSections;

// AddingSensitivity:BEGIN //////////////////////////////////////////
Expand Down
28 changes: 3 additions & 25 deletions SRC/element/forceBeamColumn/ForceBeamColumnCBDI2d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,9 @@ Matrix ForceBeamColumnCBDI2d::theMatrix(6,6);
Vector ForceBeamColumnCBDI2d::theVector(6);
double ForceBeamColumnCBDI2d::workArea[200];

Vector *ForceBeamColumnCBDI2d::vsSubdivide = 0;
Matrix *ForceBeamColumnCBDI2d::fsSubdivide = 0;
Vector *ForceBeamColumnCBDI2d::SsrSubdivide = 0;
Vector ForceBeamColumnCBDI2d::vsSubdivide[maxNumSections];
Matrix ForceBeamColumnCBDI2d::fsSubdivide[maxNumSections];
Vector ForceBeamColumnCBDI2d::SsrSubdivide[maxNumSections];

void* OPS_ForceBeamColumnCBDI2d()
{
Expand Down Expand Up @@ -278,17 +278,6 @@ ForceBeamColumnCBDI2d::ForceBeamColumnCBDI2d():
{
theNodes[0] = 0;
theNodes[1] = 0;

if (vsSubdivide == 0)
vsSubdivide = new Vector [maxNumSections];
if (fsSubdivide == 0)
fsSubdivide = new Matrix [maxNumSections];
if (SsrSubdivide == 0)
SsrSubdivide = new Vector [maxNumSections];
if (!vsSubdivide || !fsSubdivide || !SsrSubdivide) {
opserr << "ForceBeamColumnCBDI2d::ForceBeamColumnCBDI2d() -- failed to allocate Subdivide arrays";
exit(-1);
}
}

// constructor which takes the unique element tag, sections,
Expand Down Expand Up @@ -330,17 +319,6 @@ ForceBeamColumnCBDI2d::ForceBeamColumnCBDI2d (int tag, int nodeI, int nodeJ,
}

this->setSectionPointers(numSec, sec);

if (vsSubdivide == 0)
vsSubdivide = new Vector [maxNumSections];
if (fsSubdivide == 0)
fsSubdivide = new Matrix [maxNumSections];
if (SsrSubdivide == 0)
SsrSubdivide = new Vector [maxNumSections];
if (!vsSubdivide || !fsSubdivide || !SsrSubdivide) {
opserr << "ForceBeamColumnCBDI2d::ForceBeamColumnCBDI2d() -- failed to allocate Subdivide arrays";
exit(-1);
}
}

// ~ForceBeamColumnCBDI2d():
Expand Down
6 changes: 3 additions & 3 deletions SRC/element/forceBeamColumn/ForceBeamColumnCBDI2d.h
Original file line number Diff line number Diff line change
Expand Up @@ -215,9 +215,9 @@ class ForceBeamColumnCBDI2d: public Element
// following are added for subdivision of displacement increment
int maxSubdivisions; // maximum number of subdivisons of dv for local iterations

static Vector *vsSubdivide;
static Vector *SsrSubdivide;
static Matrix *fsSubdivide;
static Vector vsSubdivide[];
static Vector SsrSubdivide[];
static Matrix fsSubdivide[];
//static int maxNumSections;

// AddingSensitivity:BEGIN //////////////////////////////////////////
Expand Down
28 changes: 3 additions & 25 deletions SRC/element/forceBeamColumn/ForceBeamColumnWarping2d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,9 @@ Matrix ForceBeamColumnWarping2d::theMatrix(8,8);
Vector ForceBeamColumnWarping2d::theVector(10);
double ForceBeamColumnWarping2d::workArea[200];

Vector *ForceBeamColumnWarping2d::vsSubdivide = 0;
Matrix *ForceBeamColumnWarping2d::fsSubdivide = 0;
Vector *ForceBeamColumnWarping2d::SsrSubdivide = 0;
Vector ForceBeamColumnWarping2d::vsSubdivide[maxNumSections];
Matrix ForceBeamColumnWarping2d::fsSubdivide[maxNumSections];
Vector ForceBeamColumnWarping2d::SsrSubdivide[maxNumSections];

void* OPS_ForceBeamColumnWarping2d()
{
Expand Down Expand Up @@ -194,17 +194,6 @@ ForceBeamColumnWarping2d::ForceBeamColumnWarping2d():
{
theNodes[0] = 0;
theNodes[1] = 0;

if (vsSubdivide == 0)
vsSubdivide = new Vector [maxNumSections];
if (fsSubdivide == 0)
fsSubdivide = new Matrix [maxNumSections];
if (SsrSubdivide == 0)
SsrSubdivide = new Vector [maxNumSections];
if (!vsSubdivide || !fsSubdivide || !SsrSubdivide) {
opserr << "ForceBeamColumnWarping2d::ForceBeamColumnWarping2d() -- failed to allocate Subdivide arrays";
exit(-1);
}
}

// constructor which takes the unique element tag, sections,
Expand Down Expand Up @@ -245,17 +234,6 @@ ForceBeamColumnWarping2d::ForceBeamColumnWarping2d (int tag, int nodeI, int node
}

this->setSectionPointers(numSec, sec);

if (vsSubdivide == 0)
vsSubdivide = new Vector [maxNumSections];
if (fsSubdivide == 0)
fsSubdivide = new Matrix [maxNumSections];
if (SsrSubdivide == 0)
SsrSubdivide = new Vector [maxNumSections];
if (!vsSubdivide || !fsSubdivide || !SsrSubdivide) {
opserr << "ForceBeamColumnWarping2d::ForceBeamColumnWarping2d() -- failed to allocate Subdivide arrays";
exit(-1);
}
}

// ~ForceBeamColumnWarping2d():
Expand Down
6 changes: 3 additions & 3 deletions SRC/element/forceBeamColumn/ForceBeamColumnWarping2d.h
Original file line number Diff line number Diff line change
Expand Up @@ -200,9 +200,9 @@ class ForceBeamColumnWarping2d: public Element
// following are added for subdivision of displacement increment
int maxSubdivisions; // maximum number of subdivisons of dv for local iterations

static Vector *vsSubdivide;
static Vector *SsrSubdivide;
static Matrix *fsSubdivide;
static Vector vsSubdivide[];
static Vector SsrSubdivide[];
static Matrix fsSubdivide[];
//static int maxNumSections;

// AddingSensitivity:BEGIN //////////////////////////////////////////
Expand Down

0 comments on commit 8c2fb29

Please sign in to comment.