some file renaming
This commit is contained in:
169
OndselSolver/OrbitAngleZIeqcJec.cpp
Normal file
169
OndselSolver/OrbitAngleZIeqcJec.cpp
Normal file
@@ -0,0 +1,169 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2023 Ondsel, Inc. *
|
||||
* *
|
||||
* This file is part of OndselSolver. *
|
||||
* *
|
||||
* See LICENSE file for details about copyright. *
|
||||
***************************************************************************/
|
||||
|
||||
#include "OrbitAngleZIeqcJec.h"
|
||||
#include "CREATE.h"
|
||||
#include "DispCompIeqcJecIe.h"
|
||||
|
||||
using namespace MbD;
|
||||
|
||||
MbD::OrbitAngleZIeqcJec::OrbitAngleZIeqcJec()
|
||||
{
|
||||
}
|
||||
|
||||
MbD::OrbitAngleZIeqcJec::OrbitAngleZIeqcJec(EndFrmsptr frmi, EndFrmsptr frmj) : OrbitAngleZIecJec(frmi, frmj)
|
||||
{
|
||||
}
|
||||
|
||||
void MbD::OrbitAngleZIeqcJec::calc_ppthezpEIpEI()
|
||||
{
|
||||
auto pxpEI = xIeJeIe->pvaluepEI();
|
||||
auto pypEI = yIeJeIe->pvaluepEI();
|
||||
auto ppxpEIpEI = xIeJeIe->ppvaluepEIpEI();
|
||||
auto ppypEIpEI = yIeJeIe->ppvaluepEIpEI();
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
auto ppthezpEIpEIi = ppthezpEIpEI->at(i);
|
||||
auto ppxpEIpEIi = ppxpEIpEI->at(i);
|
||||
auto ppypEIpEIi = ppypEIpEI->at(i);
|
||||
auto pxpEIi = pxpEI->at(i);
|
||||
auto pypEIi = pypEI->at(i);
|
||||
for (int j = i; j < 4; j++)
|
||||
{
|
||||
auto pxpEIj = pxpEI->at(j);
|
||||
auto pypEIj = pypEI->at(j);
|
||||
auto term1 = (pxpEIi * pxpEIj - (pypEIi * pypEIj)) * twoCosSinOverSSqSq;
|
||||
auto term2 = ppypEIpEIi->at(j) * cosOverSSq - (ppxpEIpEIi->at(j) * sinOverSSq);
|
||||
auto term3 = (pypEIi * pxpEIj + (pxpEIi * pypEIj)) * dSqOverSSqSq;
|
||||
auto ppthezpEIpEIij = term1 + term2 + term3;
|
||||
ppthezpEIpEIi->atiput(j, ppthezpEIpEIij);
|
||||
if (i < j) ppthezpEIpEI->atijput(j, i, ppthezpEIpEIij);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MbD::OrbitAngleZIeqcJec::calc_ppthezpXIpEI()
|
||||
{
|
||||
auto pxpXI = xIeJeIe->pvaluepXI();
|
||||
auto pypXI = yIeJeIe->pvaluepXI();
|
||||
auto pxpEI = xIeJeIe->pvaluepEI();
|
||||
auto pypEI = yIeJeIe->pvaluepEI();
|
||||
auto ppxpXIpEI = xIeJeIe->ppvaluepXIpEI();
|
||||
auto ppypXIpEI = yIeJeIe->ppvaluepXIpEI();
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
auto ppthezpXIpEIi = ppthezpXIpEI->at(i);
|
||||
auto ppxpXIpEIi = ppxpXIpEI->at(i);
|
||||
auto ppypXIpEIi = ppypXIpEI->at(i);
|
||||
auto pxpXIi = pxpXI->at(i);
|
||||
auto pypXIi = pypXI->at(i);
|
||||
for (int j = 0; j < 4; j++)
|
||||
{
|
||||
auto pxpEIj = pxpEI->at(j);
|
||||
auto pypEIj = pypEI->at(j);
|
||||
auto term1 = (pxpXIi * pxpEIj - (pypXIi * pypEIj)) * twoCosSinOverSSqSq;
|
||||
auto term2 = ppypXIpEIi->at(j) * cosOverSSq - (ppxpXIpEIi->at(j) * sinOverSSq);
|
||||
auto term3 = (pypXIi * pxpEIj + (pxpXIi * pypEIj)) * dSqOverSSqSq;
|
||||
ppthezpXIpEIi->atiput(j, term1 + term2 + term3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MbD::OrbitAngleZIeqcJec::calc_ppthezpXIpXI()
|
||||
{
|
||||
//ppxpXIpXI = 0
|
||||
//ppypXIpXI = 0
|
||||
|
||||
auto pxpXI = xIeJeIe->pvaluepXI();
|
||||
auto pypXI = yIeJeIe->pvaluepXI();
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
auto ppthezpXIpXIi = ppthezpXIpXI->at(i);
|
||||
auto pxpXIi = pxpXI->at(i);
|
||||
auto pypXIi = pypXI->at(i);
|
||||
for (int j = 0; j < 3; j++)
|
||||
{
|
||||
auto pxpXIj = pxpXI->at(j);
|
||||
auto pypXIj = pypXI->at(j);
|
||||
auto term1 = (pxpXIi * pxpXIj - (pypXIi * pypXIj)) * twoCosSinOverSSqSq;
|
||||
auto term3 = (pypXIi * pxpXIj + (pxpXIi * pypXIj)) * dSqOverSSqSq;
|
||||
ppthezpXIpXIi->atiput(j, term1 + term3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MbD::OrbitAngleZIeqcJec::calc_pthezpEI()
|
||||
{
|
||||
auto pxpEI = xIeJeIe->pvaluepEI();
|
||||
auto pypEI = yIeJeIe->pvaluepEI();
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
pthezpEI->atiput(i, pypEI->at(i) * cosOverSSq - (pxpEI->at(i) * sinOverSSq));
|
||||
}
|
||||
}
|
||||
|
||||
void MbD::OrbitAngleZIeqcJec::calc_pthezpXI()
|
||||
{
|
||||
auto pxpXI = xIeJeIe->pvaluepXI();
|
||||
auto pypXI = yIeJeIe->pvaluepXI();
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
pthezpXI->atiput(i, pypXI->at(i) * cosOverSSq - (pxpXI->at(i) * sinOverSSq));
|
||||
}
|
||||
}
|
||||
|
||||
void MbD::OrbitAngleZIeqcJec::calcPostDynCorrectorIteration()
|
||||
{
|
||||
OrbitAngleZIecJec::calcPostDynCorrectorIteration();
|
||||
this->calc_pthezpXI();
|
||||
this->calc_pthezpEI();
|
||||
this->calc_ppthezpXIpXI();
|
||||
this->calc_ppthezpXIpEI();
|
||||
this->calc_ppthezpEIpEI();
|
||||
}
|
||||
|
||||
void MbD::OrbitAngleZIeqcJec::init_xyIeJeIe()
|
||||
{
|
||||
xIeJeIe = CREATE<DispCompIeqcJecIe>::With(frmI, frmJ, 0);
|
||||
yIeJeIe = CREATE<DispCompIeqcJecIe>::With(frmI, frmJ, 1);
|
||||
}
|
||||
|
||||
void MbD::OrbitAngleZIeqcJec::initialize()
|
||||
{
|
||||
OrbitAngleZIecJec::initialize();
|
||||
pthezpXI = std::make_shared<FullRow<double>>(3);
|
||||
pthezpEI = std::make_shared<FullRow<double>>(4);
|
||||
ppthezpXIpXI = std::make_shared<FullMatrixDouble>(3, 3);
|
||||
ppthezpXIpEI = std::make_shared<FullMatrixDouble>(3, 4);
|
||||
ppthezpEIpEI = std::make_shared<FullMatrixDouble>(4, 4);
|
||||
}
|
||||
|
||||
FMatDsptr MbD::OrbitAngleZIeqcJec::ppvaluepEIpEI()
|
||||
{
|
||||
return ppthezpEIpEI;
|
||||
}
|
||||
|
||||
FMatDsptr MbD::OrbitAngleZIeqcJec::ppvaluepXIpEI()
|
||||
{
|
||||
return ppthezpXIpEI;
|
||||
}
|
||||
|
||||
FMatDsptr MbD::OrbitAngleZIeqcJec::ppvaluepXIpXI()
|
||||
{
|
||||
return ppthezpXIpXI;
|
||||
}
|
||||
|
||||
FRowDsptr MbD::OrbitAngleZIeqcJec::pvaluepEI()
|
||||
{
|
||||
return pthezpEI;
|
||||
}
|
||||
|
||||
FRowDsptr MbD::OrbitAngleZIeqcJec::pvaluepXI()
|
||||
{
|
||||
return pthezpXI;
|
||||
}
|
||||
Reference in New Issue
Block a user