8000 Dev by claudioperez · Pull Request #58 · peer-open-source/xara · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Dev #58

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 47 commits into from
May 29, 2025
Merged

Dev #58

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
0150002
Update dispatch.cpp
claudioperez May 15, 2025
da3d519
Update commands.cpp
claudioperez May 15, 2025
da38ee9
Add JSON
claudioperez May 15, 2025
fe3142e
Update Parallel3DMaterial.cpp
claudioperez May 15, 2025
b7e0630
clean up new frames
claudioperez May 15, 2025
c391e13
cleaning, remove eigenAlgo from build
claudioperez May 15, 2025
9c45298
clean
claudioperez May 15, 2025
ae26383
Update FariaPlasticDamage3d.cpp
claudioperez May 16, 2025
a28a514
Update FariaPlasticDamage3d.cpp
claudioperez May 16, 2025
7285fbb
add new Bouc-Wen
claudioperez May 20, 2025
9fd2faf
banner
claudioperez May 20, 2025
370dafd
organize bouc-wen
claudioperez May 20, 2025
77d1207
add kwds to truss section command
claudioperez May 20, 2025
fec4358
add new BoucWen parser
claudioperez May 20, 2025
bf7a01d
organize viscous materials
claudioperez May 20, 2025
d088ba6
Cleaning up
claudioperez May 20, 2025
a1f51c9
Update BWBF.h
claudioperez May 20, 2025
4e63632
Update BWBF.cpp
claudioperez May 20, 2025
a124b33
Update BoucWenMG.cpp
claudioperez May 20, 2025
dfc01ef
cleaning
claudioperez May 20, 2025
e0c2b66
Update truss.cpp
claudioperez May 21, 2025
d12fd83
Update ctest.cpp
claudioperez May 21, 2025
154b1a1
Create StrsDec.cpp
claudioperez May 21, 2025
8335c73
Remove `FrameTransform2d`
claudioperez May 23, 2025
25a8cb3
Update LagrangeQuad.tpp
claudioperez May 23, 2025
b27dfea
Update CMakeLists.txt
claudioperez May 23, 2025
cb2157f
cmath
claudioperez May 23, 2025
abbef38
Update Brick.cpp
claudioperez May 23, 2025
7eb5d73
Update Brick.h
claudioperez May 23, 2025
5c312f0
Update MixedFrame3d.cpp
claudioperez May 23, 2025
353e9dd
patch
claudioperez May 23, 2025
7d40e62
clean up
claudioperez May 27, 2025
1951e81
work on rigid
claudioperez May 27, 2025
1f760da
Create FrameBasis.h
claudioperez May 27, 2025
52e275d
Some work on finite rotations in frames
claudioperez May 28, 2025
48cc4f5
Update FrameTransformBuilder.hpp
claudioperez May 28, 2025
d025b6f
update new corot.
claudioperez May 28, 2025
4b1933e
Update FrameBasis.h
claudioperez May 28, 2025
f2fbc07
Update FrameBasis.h
claudioperez May 28, 2025
76ae3ab
Update LinearFrameTransf.tpp
claudioperez May 28, 2025
21089fe
Update FrameBasis.h
claudioperez May 29, 2025
5a26a01
Update RigidFrameTransf.tpp
claudioperez May 29, 2025
0fab726
Update RigidFrameTransf.hpp
claudioperez May 29, 2025
0642c8b
clean
claudioperez May 29, 2025
bdb6b25
cleanup
claudioperez May 29, 2025
24f470f
bump version
claudioperez May 29, 2025
b745df5
install gfortran
claudioperez May 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .github/workflows/build_cmake.yml
10000
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ jobs:
# ln -s /usr/local/bin/gfortran-11 /usr/local/bin/gfortran

- name: Install Libraries
run: brew install tcl-tk libomp
run: brew install tcl-tk libomp gfortran

- name: Build
run: |
Expand All @@ -102,13 +102,11 @@ jobs:
-DNoOpenSeesPyRT:BOOL=TRUE
cmake --build . --target OpenSeesRT -j3

# - name: Verification
# run: |
# cd ./EXAMPLES/Verification/


# Not building on Windows until we can figure out how to use Fortran
# with Github Actions
#
# build-win32:
# name: Build on Windows
# runs-on: [windows-latest]
Expand Down
1 change: 0 additions & 1 deletion SRC/analysis/algorithm/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,3 @@ target_sources(OPS_Analysis

add_subdirectory(domainDecompAlgo)
add_subdirectory(equiSolnAlgo)
add_subdirectory(eigenAlgo)
134 changes: 68 additions & 66 deletions SRC/analysis/algorithm/equiSolnAlgo/NewtonLineSearch.cpp
F438
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@
NewtonLineSearch::NewtonLineSearch( )
:EquiSolnAlgo(EquiALGORITHM_TAGS_NewtonLineSearch),
theTest(0), theOtherTest(0), theLineSearch(0)
{
{

}


Expand Down Expand Up @@ -80,88 +81,88 @@ NewtonLineSearch::setConvergenceTest(ConvergenceTest *newTest)
int
NewtonLineSearch::solveCurrentStep()
{
// set up some pointers and check they are valid
// NOTE this could be taken away if we set Ptrs as protecetd in superclass
AnalysisModel *theAnaModel = this->getAnalysisModelPtr();
IncrementalIntegrator *theIntegrator = this->getIncrementalIntegratorPtr();
LinearSOE *theSOE = this->getLinearSOEptr();

if ((theAnaModel == 0) || (theIntegrator == 0) || (theSOE == 0)
|| (theTest == 0)){
opserr << "WARNING NewtonLineSearch::solveCurrentStep() - setLinks() has";
opserr << " not been called - or no ConvergenceTest has been set\n";
return -5;
}

theLineSearch->newStep(*theSOE);

// set itself as the ConvergenceTest objects EquiSolnAlgo
theTest->setEquiSolnAlgo(*this);
if (theTest->start() < 0) {
opserr << "NewtonLineSearch::solveCurrentStep() -";
opserr << "the ConvergenceTest object failed in start()\n";
return -3;
}
// set up some pointers and check they are valid
// NOTE this could be taken away if we set Ptrs as protecetd in superclass
AnalysisModel *theAnaModel = this->getAnalysisModelPtr();
IncrementalIntegrator *theIntegrator = this->getIncrementalIntegratorPtr();
LinearSOE *theSOE = this->getLinearSOEptr();

if ((theAnaModel == 0) || (theIntegrator == 0) || (theSOE == 0)
|| (theTest == 0)){
opserr << "WARNING NewtonLineSearch::solveCurrentStep() - setLinks() has";
opserr << " not been called - or no ConvergenceTest has been set\n";
return -5;
}

theLineSearch->newStep(*theSOE);

// set itself as the ConvergenceTest objects EquiSolnAlgo
theTest->setEquiSolnAlgo(*this);
if (theTest->start() < 0) {
opserr << "NewtonLineSearch::solveCurrentStep() -";
opserr << "the ConvergenceTest object failed in start()\n";
return -3;
}

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

int result = -1;
do {
int result = -1;
do {

// residual at this iteration before next solve
const Vector &Resid0 = theSOE->getB() ;
// form the tangent
if (theIntegrator->formTangent() < 0)
return SolutionAlgorithm::BadFormTangent;
// residual at this iteration before next solve
const Vector &Resid0 = theSOE->getB() ;

// form the tangent
if (theIntegrator->formTangent() < 0)
return SolutionAlgorithm::BadFormTangent;


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


// line search direction
const Vector &dx0 = theSOE->getX() ;
// line search direction
const Vector &dx0 = theSOE->getX() ;

// initial value of s
double s0 = - (dx0 ^ Resid0) ;
// initial value of s
double s0 = - (dx0 ^ Resid0) ;

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


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

// do a line search only if convergence criteria not met
theOtherTest->start();
result = theOtherTest->test();
// do a line search only if convergence criteria not met
theOtherTest->start();
result = theOtherTest->test();

if (result < 1) {
// new residual
const Vector &Resid = theSOE->getB() ;
// new value of s
double s = - ( dx0 ^ Resid ) ;
if (theLineSearch != 0)
theLineSearch->search(s0, s, *theSOE, *theIntegrator);
}
if (result < 1) {
// new residual
const Vector &Resid = theSOE->getB() ;

// new value of s
double s = - ( dx0 ^ Resid ) ;

if (theLineSearch != 0)
theLineSearch->search(s0, s, *theSOE, *theIntegrator);
}

this->record(0);
result = theTest->test();
this->record(0);

result = theTest->test();

} while (result == ConvergenceTest::Continue);
} while (result == ConvergenceTest::Continue);

if (result == ConvergenceTest::Failure)
return SolutionAlgorithm::TestFailed;;
if (result == ConvergenceTest::Failure)
return SolutionAlgorithm::TestFailed;;


// note - if positive result we are returning what the convergence test returned
// which should be the number of iterations
return result;
// note - if positive result we are returning what the convergence test returned
// which should be the number of iterations
return result;
}

ConvergenceTest *
Expand All @@ -170,6 +171,7 @@ NewtonLineSearch::getConvergenceTest()
return theTest;
}


int
NewtonLineSearch::sendSelf(int cTag, Channel &theChannel)
{
Expand Down
8 changes: 2 additions & 6 deletions SRC/analysis/analysis/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,17 @@
#==============================================================================
target_sources(OPS_Analysis
PRIVATE
Analysis.cpp
EigenAnalysis.cpp
Analysis.cpp
ResponseSpectrumAnalysis.cpp

DomainDecompositionAnalysis.cpp
StaticDomainDecompositionAnalysis.cpp
TransientDomainDecompositionAnalysis.cpp
PUBLIC
Analysis.h
EigenAnalysis.h
Analysis.h
ResponseSpectrumAnalysis.h

DomainDecompositionAnalysis.h
StaticDomainDecompositionAnalysis.h
TransientDomainDecompositionAnalysis.h
)

#add_subdirectory(analysis)
4 changes: 2 additions & 2 deletions SRC/coordTransformation/CorotCrdTransf2d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Matrix CorotCrdTransf2d::kg(6, 6);

CorotCrdTransf2d::CorotCrdTransf2d(int tag, const Vector &rigJntOffsetI,
const Vector &rigJntOffsetJ)
: FrameTransform2d(tag, CRDTR_TAG_CorotCrdTransf2d), nodeIOffset(2),
: CrdTransf(tag, CRDTR_TAG_CorotCrdTransf2d), nodeIOffset(2),
nodeJOffset(2), cosTheta(0), sinTheta(0), cosAlpha(0), sinAlpha(0),
nodeIPtr(0), nodeJPtr(0), L(0), Ln(0), ub(3), ubcommit(3), ubpr(3),
nodeIInitialDisp(0), nodeJInitialDisp(0), initialDispChecked(false)
Expand Down Expand Up @@ -91,7 +91,7 @@ CorotCrdTransf2d::CorotCrdTransf2d(int tag, const Vector &rigJntOffsetI,
// constructor:
// invoked by a FEM_ObjectBroker, recvSelf() needs to be invoked on this object.
CorotCrdTransf2d::CorotCrdTransf2d()
: FrameTransform2d(0, CRDTR_TAG_CorotCrdTransf2d), nodeIOffset(2), nodeJOffset(2),
: CrdTransf(0, CRDTR_TAG_CorotCrdTransf2d), nodeIOffset(2), nodeJOffset(2),
cosTheta(0), sinTheta(0), cosAlpha(0), sinAlpha(0), nodeIPtr(0),
nodeJPtr(0), L(0), Ln(0), ub(3), ubcommit(3), ubpr(3),
nodeIInitialDisp(0), nodeJInitialDisp(0), initialDispChecked(false)
Expand Down
2 changes: 1 addition & 1 deletion SRC/coordTransformation/CorotCrdTransf2d.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
#include <Vector.h>
#include <Matrix.h>

class CorotCrdTransf2d: public FrameTransform2d
class CorotCrdTransf2d: public CrdTransf
{
public:
CorotCrdTransf2d(int tag, const Vector &rigJntOffsetI, const Vector &rigJntOffsetJ);
Expand Down
4 changes: 2 additions & 2 deletions SRC/coordTransformation/CorotCrdTransfWarping2d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ Matrix CorotCrdTransfWarping2d::kg(8, 8);
CorotCrdTransfWarping2d::CorotCrdTransfWarping2d(int tag,
const Vector &rigJntOffsetI,
const Vector &rigJntOffsetJ)
: FrameTransform2d(tag, CRDTR_TAG_CorotCrdTransfWarping2d), nodeIOffset(2),
: CrdTransf(tag, CRDTR_TAG_CorotCrdTransfWarping2d), nodeIOffset(2),
nodeJOffset(2), cosTheta(0), sinTheta(0), cosAlpha(0), sinAlpha(0),
nodeIPtr(0), nodeJPtr(0), L(0), Ln(0), ub(5), ubcommit(5), ubpr(5),
nodeIInitialDisp(0), nodeJInitialDisp(0), initialDispChecked(false)
Expand Down Expand Up @@ -92,7 +92,7 @@ CorotCrdTransfWarping2d::CorotCrdTransfWarping2d(int tag,
// constructor:
// invoked by a FEM_ObjectBroker, recvSelf() needs to be invoked on this object.
CorotCrdTransfWarping2d::CorotCrdTransfWarping2d()
: FrameTransform2d(0, CRDTR_TAG_CorotCrdTransfWarping2d), nodeIOffset(2),
: CrdTransf(0, CRDTR_TAG_CorotCrdTransfWarping2d), nodeIOffset(2),
nodeJOffset(2), cosTheta(0), sinTheta(0), cosAlpha(0), sinAlpha(0),
nodeIPtr(0), nodeJPtr(0), L(0), Ln(0), ub(5), ubcommit(5), ubpr(5),
nodeIInitialDisp(0), nodeJInitialDisp(0), initialDispChecked(false)
Expand Down
2 changes: 1 addition & 1 deletion SRC/coordTransformation/CorotCrdTransfWarping2d.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
#include <Vector.h>
#include <Matrix.h>

class CorotCrdTransfWarping2d: public FrameTransform2d
class CorotCrdTransfWarping2d: public CrdTransf
{
public:
CorotCrdTransfWarping2d(int tag, const Vector &rigJntOffsetI, const Vector &rigJntOffsetJ);
Expand Down
16 changes: 7 additions & 9 deletions SRC/coordTransformation/Frame/BasicFrameTransf.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,12 @@
#include <Matrix.h>

namespace OpenSees {

template<int ndf=6>
class BasicFrameTransf3d: public FrameTransform3d
{
public:
BasicFrameTransf3d(FrameTransform<2,6> *t);
BasicFrameTransf3d(FrameTransform<2,ndf> *t);

~BasicFrameTransf3d();

Expand All @@ -44,12 +46,6 @@ class BasicFrameTransf3d: public FrameTransform3d
virtual const Vector &getBasicIncrDeltaDisp() override final;
virtual const Vector &getBasicTrialVel() override final;

virtual VectorND<12> pushResponse(VectorND<12>&pl) override final;
virtual VectorND<12> pushConstant(const VectorND<12>&pl) const override final;

virtual MatrixND<12,12> pushResponse(MatrixND<12,12>& kl, const VectorND<12>& pl) override final;
virtual MatrixND<12,12> pushConstant(const MatrixND<12,12>& kl) override final;

virtual const Vector &getGlobalResistingForce(const Vector &basicForce, const Vector &p0) final;
virtual const Matrix &getGlobalStiffMatrix(const Matrix &basicStiff, const Vector &basicForce) final;
virtual const Matrix &getInitialGlobalStiffMatrix(const Matrix &basicStiff) final;
Expand Down Expand Up @@ -81,12 +77,13 @@ class BasicFrameTransf3d: public FrameTransform3d
// TaggedObject
void Print(OPS_Stream &s, int flag = 0);


FrameTransform<2,ndf> &t;
protected:
private:
FrameTransform<2,6> &t;

constexpr static int NBV = 6;
constexpr static int NDF = 6;
constexpr static int NDF = ndf;
enum : int {
inx = -12, // 0
iny = -12, // 1
Expand All @@ -110,5 +107,6 @@ class BasicFrameTransf3d: public FrameTransform3d

};
} // namespace OpenSees
#include "BasicFrameTransf.tpp"
#endif

Loading
Loading
0