Skip to content
Snippets Groups Projects

Version 1.2

Merged Adrien Crovato requested to merge adri into master
2 files
+ 2
7
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 8
3
@@ -34,7 +34,7 @@ Solver::Solver(Problem &pbl, int vrb) : _pbl(pbl), _vrb(vrb), _cl(0), _cd(0), _c
// Say hi
std::cout << std::endl;
std::cout << "*******************************************************************************" << std::endl;
std::cout << "** Hi! My name is SDPM v1.1-2401 **" << std::endl;
std::cout << "** Hi! My name is SDPM v1.2-2412 **" << std::endl;
std::cout << "** ULiege 2023-2024 **" << std::endl;
std::cout << "*******************************************************************************" << std::endl;
@@ -558,7 +558,7 @@ void Solver::post(size_t imd, size_t ifq, sdpmVectorXcd const &etau, sdpmVectorX
sdpmComplex phit = -sdpmComplex(0., 1.) * omega * emu(_rows[elems[i]]);
sdpmComplex phix = u1[i](0) - (uc0[i](0) + uc1[i](0) * sdpmComplex(0., 1.) * omega);
sdpmComplex phix0(_u[elems[i]->getId() - 1](0) - ui(0), 0.);
sdpmComplex cp1 = -sdpmComplex(2., 0.) * phit + sdpmComplex(mi * mi, 0.) * (sdpmComplex(2., 0.) * phix0 * phix + phix0 * phit);
sdpmComplex cp1 = -sdpmComplex(2., 0.) * phit + sdpmComplex(2 * mi * mi, 0.) * (phix0 * phix + phix0 * phit);
for (size_t j = 0; j < 3; ++j)
cp1 -= sdpmComplex(2 * _u[elems[i]->getId() - 1](j), 0.) * u1[i](j);
// cp
@@ -616,7 +616,9 @@ void Solver::computeGAF(size_t ifq)
// Get sizes
size_t n = _pbl.getNodes().size();
size_t nm = _pbl.getNumModes();
// Get z-component of modal displacements and nodal loads
// Get x-component of reference center
sdpmDouble xRef = _pbl.getRefCtr()(0);
// Get z-component of displacements and nodal loads
sdpmMatrixXd mz1 = sdpmMatrixXd::Zero(nm, n);
sdpmMatrixXd lz1Re = sdpmMatrixXd::Zero(n, nm);
sdpmMatrixXd lz1Im = sdpmMatrixXd::Zero(n, nm);
@@ -624,12 +626,15 @@ void Solver::computeGAF(size_t ifq)
{
for (auto b : _pbl.getBodies())
{
sdpmDouble aAmp = b->getPitchAmplitude(imd);
sdpmDouble hAmp = b->getPlungeAmplitude(imd);
mz1.row(imd) = Eigen::Map<const sdpmVectorXd>(b->getModeZ(imd).data(), n).transpose();
std::vector<Node *> nods = b->getNodes();
std::vector<sdpmVector3d> l1Re = b->getUnsteadyLoadsReal(imd, ifq);
std::vector<sdpmVector3d> l1Im = b->getUnsteadyLoadsImag(imd, ifq);
for (size_t i = 0; i < nods.size(); ++i)
{
mz1(imd, nods[i]->getId() - 1) += aAmp * (nods[i]->getCoords()(0) - xRef) + hAmp;
lz1Re(nods[i]->getId() - 1, imd) = -l1Re[i](2);
lz1Im(nods[i]->getId() - 1, imd) = -l1Im[i](2);
}
Loading