Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
f22de1b
Add addSpinAtRow methods and minor refactoring in MatrixND
claudioperez Feb 4, 2026
b855263
Update SparseGenColLinSOE.h
claudioperez Feb 4, 2026
b211411
Update SparseGenColLinSOE.cpp
claudioperez Feb 4, 2026
cf957d2
Update frame.cpp
claudioperez Feb 4, 2026
516cd2c
Update nodes.cpp
claudioperez Feb 4, 2026
9f0dc3a
Update AxisAngle.h
claudioperez Feb 4, 2026
aa33d55
Update CTestFixedNumIter.cpp
claudioperez Feb 4, 2026
5c79e94
Update CTestNormDispIncr.cpp
claudioperez Feb 4, 2026
74be0ba
Update CTestRelativeEnergyIncr.cpp
claudioperez Feb 4, 2026
a01924c
Update CTestRelativeNormDispIncr.cpp
claudioperez Feb 4, 2026
21a33c0
Update CTestEnergyIncr.cpp
claudioperez Feb 4, 2026
28b039b
Update Broyden.h
claudioperez Feb 4, 2026
823d166
Update Broyden.cpp
claudioperez Feb 4, 2026
036219c
Update SingleDomNodIter.cpp
claudioperez Feb 4, 2026
3831da5
Create MixedFrameSection.cpp
claudioperez Feb 17, 2026
241f34c
Create MixedFrameSection.h
claudioperez Feb 17, 2026
55e5f01
Create ElasticIsotropicBeamThread.cpp
claudioperez Feb 17, 2026
8b21695
Create ElasticIsotropicBeamThread.h
claudioperez Feb 17, 2026
02e14cf
Update CMakeLists.txt
claudioperez Feb 17, 2026
d8755fe
Update MixedFrameSection.cpp
claudioperez Feb 17, 2026
213de5c
Update MixedFrameSection.h
claudioperez Feb 17, 2026
1b9abe3
Update section.cpp
claudioperez Feb 17, 2026
d4823cd
Update SecantAccelerator2.cpp
claudioperez Feb 18, 2026
93f5913
Update SecantAccelerator1.cpp
claudioperez Feb 18, 2026
2e1c18f
Update EarthquakePattern.cpp
claudioperez Feb 18, 2026
12b890c
Update DispBeamColumnAsym3d.cpp
claudioperez Feb 18, 2026
e972463
Update ElasticIsotropicMaterial.cpp
claudioperez Feb 18, 2026
4755848
Update ElasticIsotropicMaterial.h
claudioperez Feb 18, 2026
91958b3
Update ElasticIsotropicThreeDimensional.h
claudioperez Feb 18, 2026
e5aad1c
Update VectorND.h
claudioperez Feb 18, 2026
cdca825
Update VectorND.tpp
claudioperez Feb 18, 2026
92bda85
Update response.cpp
claudioperez Feb 18, 2026
fe82e19
Make LoadPattern pure virtual
claudioperez Feb 18, 2026
5c11307
Update ShellMITC4.cpp
claudioperez Feb 18, 2026
85537dc
Update CTestNormUnbalance.cpp
claudioperez Feb 25, 2026
475a7cd
Domain.cpp: style cleanup
claudioperez Feb 25, 2026
ea3b9d3
Use std::pow, init containers, stub recvSelf
claudioperez Feb 25, 2026
e90748c
Update ShearFrame3d.h
claudioperez Feb 25, 2026
ebaa430
Update ShearFrame3d.tpp
claudioperez Feb 25, 2026
af96085
Update ZeroLengthSection.cpp
claudioperez Feb 25, 2026
2c061f3
Refactor MixedFrameSection fiber/mixed logic
claudioperez Feb 25, 2026
0fc6645
Make J2Plasticity thread-safe and use Matrix3D
claudioperez Feb 25, 2026
262b435
Refactor ElasticLinearFrameSection3d to use Frame::Prism
claudioperez Feb 28, 2026
ab097f9
Make BeamFiberMaterial thread-safe
claudioperez Feb 28, 2026
8c1be34
Update section.cpp
claudioperez Feb 28, 2026
9ce9c29
Update frame.cpp
claudioperez Feb 28, 2026
1da54ce
Refactor Prism shape data and validation
claudioperez Feb 28, 2026
e221b4e
bump version
claudioperez Feb 28, 2026
646937e
Add J2BeamThread3d material (J2 plasticity)
claudioperez Feb 28, 2026
0e83715
Create frame_create.cpp
claudioperez Feb 28, 2026
3542494
Create frames.hpp
claudioperez Feb 28, 2026
be0a8aa
Update material.cpp
claudioperez Feb 28, 2026
d0b3145
Update material.hpp
claudioperez Feb 28, 2026
a8f1087
Update main.cpp
claudioperez Feb 28, 2026
eee1930
Update AcceleratedNewton.cpp
claudioperez Feb 28, 2026
0c0e4fd
Put ElasticIsotropicThreeDimensional in OpenSees namespace
claudioperez Feb 28, 2026
1a5b13d
Update CMakeLists.txt
claudioperez Feb 28, 2026
8cd8070
Create FrameSectionConstants.h
claudioperez Feb 28, 2026
423891d
Update ElasticIsotropicThreeDimensional.cpp
claudioperez Feb 28, 2026
05f303c
Implement MaterialBuilder class to allow builder classes without dumm…
claudioperez Feb 28, 2026
7fe57bf
Update NDMaterial.cpp
claudioperez Mar 1, 2026
4656bc4
Add NonlinearJ2 J2 plasticity material
claudioperez Mar 1, 2026
ffd69ee
Update CMakeLists.txt
claudioperez Mar 1, 2026
706a53f
Refactor element and material command organization
claudioperez Mar 1, 2026
2051a19
Refactor FrameSection API and tangent logic
claudioperez Mar 1, 2026
7febde4
Create GeneralizedJ2.h
claudioperez Mar 1, 2026
ca3c7e5
Create GeneralizedJ2.cpp
claudioperez Mar 1, 2026
63c3a97
Update frames.cpp
claudioperez Mar 1, 2026
cb8aebf
Update CMakeLists.txt
claudioperez Mar 1, 2026
6734f16
Create exact.cpp
claudioperez Mar 1, 2026
b28d22b
Rename Prism -> Shape and update frame code
claudioperez Mar 1, 2026
f5eff11
Update Lagrange1D.cpp
claudioperez Mar 1, 2026
4183525
Update force.cpp
claudioperez Mar 1, 2026
3582c41
Update CMakeLists.txt
claudioperez Mar 1, 2026
6789799
clean headers, add banners
claudioperez Mar 1, 2026
9353ca8
Update NonlinearJ2.cpp
claudioperez Mar 1, 2026
f332dfa
Update exact.cpp
claudioperez Mar 1, 2026
826cf71
Fix warning in GenericCopy
claudioperez Mar 1, 2026
469f0d4
Update frames.cpp
claudioperez Mar 1, 2026
520ff74
Remove Rendering
claudioperez Mar 1, 2026
c7385ff
minor clean ups
claudioperez Mar 1, 2026
cedd336
enlarge buffers
claudioperez Mar 1, 2026
c60d62b
minor clean ups
claudioperez Mar 1, 2026
ab19a40
remove stale tests
claudioperez Mar 1, 2026
ce77944
Update FullGenEigenSOE.cpp
claudioperez Mar 1, 2026
59c9b6d
Update FrameQuadrature.hpp
claudioperez Mar 2, 2026
56dec8b
Update ElasticLinearFrameSection3d.cpp
claudioperez Mar 2, 2026
7d09d7e
use_mass flag in force/mixed frame elements.
claudioperez Mar 3, 2026
c787e89
APDVFD: update logging and formatting, silence warning
claudioperez Mar 3, 2026
9290752
Update commands.cpp
claudioperez Mar 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions SRC/analysis/algorithm/equiSolnAlgo/AcceleratedNewton.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -249,13 +249,13 @@ AcceleratedNewton::recvSelf(int cTag, Channel &theChannel,
void
AcceleratedNewton::Print(OPS_Stream &s, int flag) const
{
s << "AcceleratedNewton" << endln;
s << "QuasiNewton" << "\n";
LinearSOE *theSOE = this->getLinearSOEptr();
s << "\tNumber of equations: " << theSOE->getNumEqn() << endln;
s << "\tNumber of equations: " << theSOE->getNumEqn() << "\n";

if (theAccelerator != 0)
theAccelerator->Print(s,flag);
else
s << "\tNo accelerator --> Modified Newton" << endln;
s << "\tNo accelerator --> Modified Newton" << "\n";
}

12 changes: 6 additions & 6 deletions SRC/analysis/algorithm/equiSolnAlgo/Broyden.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ Broyden::solveCurrentStep()
temp = new Vector(systemSize) ;

// initial displacement increment
if ( s[1] == 0 )
if ( s[1] == nullptr )
s[1] = new Vector(systemSize) ;

*s[1] = theSOE->getX( ) ;
Expand Down Expand Up @@ -231,7 +231,7 @@ Broyden::solveCurrentStep()

*s[nBroyden] = *du ;

//swap residuals
// swap residuals
*residOld = *residNew ;

//form the residual again
Expand Down Expand Up @@ -306,16 +306,16 @@ void Broyden::BroydenUpdate( IncrementalIntegrator *theIntegrator,
*temp *= ( (1.0/p) * sdotz ) ;
*z[nBroyden] += (*temp) ;


} //end for i
}


//broyden modifications to du
// broyden modifications to du
for (int i=1; i<=nBroyden; i++ ) {

double p = - ( (*s[i]) ^ (*z[i]) ) ;

if ( fabs(p) < eps ) break ;
if ( std::fabs(p) < eps )
break ;

double sdotdu = (*s[i]) ^ du ;

Expand Down
2 changes: 0 additions & 2 deletions SRC/analysis/algorithm/equiSolnAlgo/Broyden.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@
// Description: This file contains the class definition for
// Broyden. Broyden is a class which performs the Broyden
// solution algorithm in solving the equations.
// No member functions are declared as virtual as
// it is not expected that this class will be subclassed.
//
// What: "@(#)Broyden.h, revA"

Expand Down
19 changes: 9 additions & 10 deletions SRC/analysis/algorithm/equiSolnAlgo/Linear.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@
//
// Description: This file contains the class definition for
// Linear. Linear is a class which performs a linear solution algorithm
// to solve the equations. No member functions are declared as virtual as
// it is not expected that this class will be subclassed.
// to solve the equations.
//
// File: ~/OOP/analysis/algorithm/Linear.C
//
Expand Down Expand Up @@ -62,28 +61,28 @@ Linear::solveCurrentStep()
IncrementalIntegrator *theIncIntegrator = this->getIncrementalIntegratorPtr();

if ((theIncIntegrator ==0 ) || (theSOE == 0)) {
return SolutionAlgorithm::BadAlgorithm;
return SolutionAlgorithm::BadAlgorithm;
}

if (factorOnce != 2) {
if (theIncIntegrator->formTangent(incrTangent) < 0)
return SolutionAlgorithm::BadFormTangent;
if (theIncIntegrator->formTangent(incrTangent) < 0)
return SolutionAlgorithm::BadFormTangent;

if (factorOnce == 1)
factorOnce = 2;
if (factorOnce == 1)
factorOnce = 2;
}


if (theIncIntegrator->formUnbalance() < 0)
return SolutionAlgorithm::BadFormResidual;
return SolutionAlgorithm::BadFormResidual;


if (theSOE->solve() < 0)
return SolutionAlgorithm::BadLinearSolve;
return SolutionAlgorithm::BadLinearSolve;


if (theIncIntegrator->update(theSOE->getX()) < 0)
return SolutionAlgorithm::BadStepUpdate;
return SolutionAlgorithm::BadStepUpdate;

return 0;
}
Expand Down
34 changes: 16 additions & 18 deletions SRC/analysis/algorithm/equiSolnAlgo/Linear.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,7 @@

// Description: This file contains the class definition for
// Linear. Linear is a class which performs a linear solution algorithm
// to solve the equations. No member functions are declared as virtual as
// it is not expected that this class will be subclassed.
// to solve the equations.
//
// What: "@(#)Linear.h, revA"

Expand All @@ -44,23 +43,22 @@

class Linear: public EquiSolnAlgo
{
public:
Linear(int theTangent = CURRENT_TANGENT, int factorOnce = 0);
~Linear();
public:
Linear(int theTangent = CURRENT_TANGENT, int factorOnce = 0);
~Linear();

int solveCurrentStep(void);

virtual int sendSelf(int commitTag, Channel &theChannel);
virtual int recvSelf(int commitTag, Channel &theChannel,
FEM_ObjectBroker &theBroker);

void Print(OPS_Stream &, int flag) const final;

protected:

private:
int incrTangent;
int factorOnce;
int solveCurrentStep(void);

virtual int sendSelf(int commitTag, Channel &);
virtual int recvSelf(int commitTag, Channel &, FEM_ObjectBroker &);

void Print(OPS_Stream &, int flag) const final;

protected:

private:
int incrTangent;
int factorOnce;
};

#endif
Expand Down
4 changes: 1 addition & 3 deletions SRC/analysis/algorithm/equiSolnAlgo/ModifiedNewton.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@
//
// Description: This file contains the class definition for
// ModifiedNewton. ModifiedNewton is a class which uses the
// Newton-Raphson solution algorithm
// to solve the equations. No member functions are declared as virtual as
// it is not expected that this class will be subclassed.
// Newton-Raphson solution algorithm to solve the equations.
//
// Written: fmk
// Created: 11/96
Expand Down
14 changes: 6 additions & 8 deletions SRC/analysis/algorithm/equiSolnAlgo/ModifiedNewton.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@
// Description: This file contains the class definition for
// ModifiedNewton. ModifiedNewton is a class which performs a modified
// Newton-Raphson solution algorithm in solving the equations.
// No member functions are declared as virtual as
// it is not expected that this class will be subclassed.
//
// Written: fmk
// Created: 11/96
Expand All @@ -38,17 +36,17 @@ class ConvergenceTest;

class ModifiedNewton: public EquiSolnAlgo
{
public:
public:
ModifiedNewton(int tangent, double iFactor = 0.0, double cFactor = 1.0);
~ModifiedNewton();

int solveCurrentStep();
int getNumIterations() const override;
int solveCurrentStep();
int getNumIterations() const override;

virtual int sendSelf(int commitTag, Channel &theChannel);
virtual int recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker);
virtual int sendSelf(int commitTag, Channel &);
virtual int recvSelf(int commitTag, Channel &, FEM_ObjectBroker &);

void Print(OPS_Stream &, int flag) const final;
void Print(OPS_Stream &, int flag) const final;

protected:

Expand Down
4 changes: 1 addition & 3 deletions SRC/analysis/algorithm/equiSolnAlgo/NewtonRaphson.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@
//
// Description: This file contains the class definition for
// NewtonRaphson. NewtonRaphson is a class which uses the
// Newton-Raphson solution algorithm
// to solve the equations. No member functions are declared as virtual as
// it is not expected that this class will be subclassed.
// Newton-Raphson solution algorithm to solve the equations.
//
// What: "@(#)NewtonRaphson.C, revA"
//
Expand Down
2 changes: 0 additions & 2 deletions SRC/analysis/algorithm/equiSolnAlgo/NewtonRaphson.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,6 @@
// Description: This file contains the class definition for
// NewtonRaphson. NewtonRaphson is a class which performs a Newton-Raphson
// solution algorithm in solving the equations.
// No member functions are declared as virtual as
// it is not expected that this class will be subclassed.
//
// What: "@(#)NewtonRaphson.h, revA"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,7 @@ SecantAccelerator1::SecantAccelerator1(int maxIter, int tangent)

}

SecantAccelerator1::SecantAccelerator1(int maxIter, int tangent,
double r1, double r2)
SecantAccelerator1::SecantAccelerator1(int maxIter, int tangent, double r1, double r2)
:Accelerator(ACCELERATOR_TAGS_Secant),
iteration(0), numEqns(0), R1(r1), R2(r2),
vOld(0), rOld(0), maxIterations(maxIter), theTangent(tangent),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,7 @@ SecantAccelerator2::SecantAccelerator2(int maxIter, int tangent)

}

SecantAccelerator2::SecantAccelerator2(int maxIter, int tangent,
double r1, double r2)
SecantAccelerator2::SecantAccelerator2(int maxIter, int tangent, double r1, double r2)
:Accelerator(ACCELERATOR_TAGS_Secant),
iteration(0), numEqns(0), R1(r1), R2(r2),
vOld(0), rOld(0), maxIterations(maxIter), theTangent(tangent),
Expand Down Expand Up @@ -112,8 +111,6 @@ SecantAccelerator2::accelerate(Vector &vStar, LinearSOE &theSOE,
// Check "cut-out" criteria
if (cutOut && (A > R1 || A < 1.0/R1 || DA > R2 || DA < -0.5*R2)) {
// do nothing
//opserr << "SecantAccelerator2::accelerate() -- cut out, A = " << A
// << ", D/A = " << DA << "\n";
}
else {
//vStar.addVector(A, *vOld, D);
Expand Down
52 changes: 34 additions & 18 deletions SRC/analysis/criteria/CTestEnergyIncr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,9 @@ CTestEnergyIncr::CTestEnergyIncr()


CTestEnergyIncr::CTestEnergyIncr(double theTol, int maxIter, int printIt, int normType, double max)
: ConvergenceTest(CONVERGENCE_TEST_CTestEnergyIncr),
tol(theTol), maxTol(max), maxNumIter(maxIter), currentIter(0),printFlag(printIt),
: ConvergenceTest(CONVERGENCE_TEST_CTestEnergyIncr)
, tol(theTol), maxTol(max), maxNumIter(maxIter)
, currentIter(0), printFlag(printIt),
nType(normType), norms(maxNumIter)
{

Expand All @@ -61,11 +62,15 @@ CTestEnergyIncr::~CTestEnergyIncr()
ConvergenceTest*
CTestEnergyIncr::getCopy(int iterations)
{
return new CTestEnergyIncr(this->tol, iterations, this->printFlag, this->nType, this->maxTol);
return new CTestEnergyIncr(this->tol, iterations,
ConvergenceTest::Silent, //this->printFlag,
this->nType,
this->maxTol);
}


void CTestEnergyIncr::setTolerance(double newTol)
void
CTestEnergyIncr::setTolerance(double newTol)
{
tol = newTol;
}
Expand All @@ -85,6 +90,12 @@ CTestEnergyIncr::test(LinearSOE& theSOE)

// determine the energy & save value in norms vector
const Vector &b = theSOE.getB();
#if 0
if (currentIter > 1) {
theSOE.setB(b);
theSOE.solve();
}
#endif
const Vector &x = theSOE.getX();
double product = x ^ b;
if (product < 0.0)
Expand All @@ -100,15 +111,17 @@ CTestEnergyIncr::test(LinearSOE& theSOE)
pstream << LOG_ITERATE
<< "Iter: " << pad(currentIter)
<< ", EnergyIncr: " << pad(product)
<< ", Residual: " << pad(b.pNorm(nType))
<< ", Increment: " << pad(x.pNorm(nType))
<< "\n";
}
if (printFlag & ConvergenceTest::PrintTest02) {
pstream << LOG_ITERATE
<< "Iter: " << pad(currentIter)
<< ", EnergyIncr: " << pad(product)
<< LOG_CONTINUE
<< "Norm deltaX: " << pad(x.pNorm(nType))
<< ", Norm deltaR: " << pad(b.pNorm(nType))
<< "Norm dX: " << pad(x.pNorm(nType))
<< ", Norm dR: " << pad(b.pNorm(nType))
<< LOG_CONTINUE
<< "deltaX: " << x
<< "\tdeltaR: " << b;
Expand Down Expand Up @@ -187,32 +200,35 @@ CTestEnergyIncr::start(LinearSOE& theSOE)


int
CTestEnergyIncr::getNumTests(void)
CTestEnergyIncr::getNumTests()
{
return currentIter;
return currentIter;
}


int CTestEnergyIncr::getMaxNumTests(void)
int
CTestEnergyIncr::getMaxNumTests()
{
return maxNumIter;
return maxNumIter;
}


double CTestEnergyIncr::getRatioNumToMax(void)
double CTestEnergyIncr::getRatioNumToMax()
{
double div = maxNumIter;
return currentIter/div;
double div = maxNumIter;
return currentIter/div;
}


const Vector& CTestEnergyIncr::getNorms(void)
const Vector&
CTestEnergyIncr::getNorms()
{
return norms;
return norms;
}


int CTestEnergyIncr::sendSelf(int cTag, Channel &theChannel)
int
CTestEnergyIncr::sendSelf(int cTag, Channel &theChannel)
{
int res = 0;
static Vector x(5);
Expand All @@ -229,8 +245,8 @@ int CTestEnergyIncr::sendSelf(int cTag, Channel &theChannel)
}


int CTestEnergyIncr::recvSelf(int cTag, Channel &theChannel,
FEM_ObjectBroker &theBroker)
int
CTestEnergyIncr::recvSelf(int cTag, Channel &theChannel, FEM_ObjectBroker &theBroker)
{
int res = 0;
static Vector x(5);
Expand Down
Loading
Loading