Adjoint solver class.
More...
#include <wAdjoint.h>
|
| Adjoint (std::shared_ptr< Newton > _sol, std::shared_ptr< tbox::MshDeform > _morph, std::shared_ptr< tbox::LinearSolver > _linsol) |
| Initialize the adjoint solver. More...
|
|
virtual | ~Adjoint () |
|
void | run () |
| Run the adjoint method. More...
|
|
void | save (tbox::MshExport *mshWriter, int n=0) |
| Write the results. More...
|
|
virtual void | write (std::ostream &out) const override |
|
|
fwk::Timers | tms |
| internal timers More...
|
|
std::vector< std::vector< int > > | arows |
| rows (unknown index) with duplicated dof on wake More...
|
|
Adjoint solver class.
- Authors
- Adrien Crovato
◆ Adjoint()
Adjoint::Adjoint |
( |
std::shared_ptr< Newton > |
_sol, |
|
|
std::shared_ptr< tbox::MshDeform > |
_morph, |
|
|
std::shared_ptr< tbox::LinearSolver > |
_linsol |
|
) |
| |
Initialize the adjoint solver.
- Authors
- Adrien Crovato
◆ ~Adjoint()
virtual flow::Adjoint::~Adjoint |
( |
| ) |
|
|
inlinevirtual |
◆ buildGradientLoadsAoa()
void Adjoint::buildGradientLoadsAoa |
( |
double & |
dL, |
|
|
double & |
dD |
|
) |
| |
|
private |
Compute gradients of the lift and drag with respect to angle of attack.
- Todo:
- one gradient for each surface node
◆ buildGradientLoadsFlow()
void Adjoint::buildGradientLoadsFlow |
( |
Eigen::VectorXd & |
dL, |
|
|
Eigen::VectorXd & |
dD |
|
) |
| |
|
private |
Build the gradients of the lift and drag with respect to the flow variables.
- Todo:
- one gradient for each surface node
◆ buildGradientLoadsMesh()
void Adjoint::buildGradientLoadsMesh |
( |
Eigen::RowVectorXd & |
dL, |
|
|
Eigen::RowVectorXd & |
dD |
|
) |
| |
|
private |
Compute gradients of the lift and drag with respect to mesh nodes.
- Todo:
- one gradient for each surface node
◆ buildGradientResidualAoa()
void Adjoint::buildGradientResidualAoa |
( |
Eigen::VectorXd & |
dR | ) |
|
|
private |
Compute gradients of the residual with respect to angle of attack.
◆ buildGradientResidualMesh()
void Adjoint::buildGradientResidualMesh |
( |
Eigen::SparseMatrix< double, Eigen::RowMajor > & |
dR | ) |
|
|
private |
Compute gradients of the residual with respect to mesh nodes.
◆ computeGradientAoa()
void Adjoint::computeGradientAoa |
( |
| ) |
|
|
private |
Compute total gradients of the loads with respect to angle of attack.
- Todo:
- one gradient for each surface node
◆ computeGradientMesh()
void Adjoint::computeGradientMesh |
( |
| ) |
|
|
private |
Compute total gradients of the loads with respect to mesh nodes.
◆ mapRows()
void Adjoint::mapRows |
( |
| ) |
|
|
private |
Create the rows vector for the adjoint mesh.
- Todo:
- duplicated from wake
◆ run()
Run the adjoint method.
Solve the adjoint steady transonic Full Potential Equation and compute lift and drag sensitivites
◆ save()
void Adjoint::save |
( |
tbox::MshExport * |
mshWriter, |
|
|
int |
n = 0 |
|
) |
| |
◆ solve()
Solve the adjoint steady transonic Full Potential Equation.
◆ write()
void Adjoint::write |
( |
std::ostream & |
out | ) |
const |
|
overridevirtual |
◆ arows
std::vector<std::vector<int> > flow::Adjoint::arows |
|
private |
rows (unknown index) with duplicated dof on wake
◆ dCdAoa
double flow::Adjoint::dCdAoa |
drag gradient with respect to angle of attack
◆ dCdMsh
std::vector<Eigen::Vector3d> flow::Adjoint::dCdMsh |
drag gradient with respect to mesh
◆ dClAoa
double flow::Adjoint::dClAoa |
lift gradient with respect to angle of attack
◆ dClMsh
std::vector<Eigen::Vector3d> flow::Adjoint::dClMsh |
lift gradient with respect to mesh
◆ lamCdFlo
std::vector<double> flow::Adjoint::lamCdFlo |
◆ lamClFlo
std::vector<double> flow::Adjoint::lamClFlo |
◆ linsol
std::shared_ptr<tbox::LinearSolver> flow::Adjoint::linsol |
◆ morph
std::shared_ptr<tbox::MshDeform> flow::Adjoint::morph |
◆ nthreads
int flow::Adjoint::nthreads |
number of threads for the assembly
◆ sol
std::shared_ptr<Newton> flow::Adjoint::sol |
◆ tms
fwk::Timers flow::Adjoint::tms |
|
private |
◆ verbose
int flow::Adjoint::verbose |
The documentation for this class was generated from the following files: