diff --git a/README.md b/README.md index a5a8976e196f8525d9954547ac1456962afa6c22..fe67eecfc0e64c76fc47b8bb46f37e5fbffc38e8 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,8 @@ Detailed build and use instructions can be found in the [wiki](https://gitlab.ul ## References Crovato Adrien, [Steady Transonic Aerodynamic and Aeroelastic Modeling for Preliminary Aircraft Design](http://hdl.handle.net/2268/251906), PhD thesis, University of Liège, 2020. +Crovato Adrien, [DARTFlo - Discrete Adjoint for Rapid Transonic Flows](http://hdl.handle.net/2268/264284), Technical note, University of Liège, 2021. + Crovato A., Boman R., et al., [A Full Potential Static Aeroelastic Solver for Preliminary Aircraft Design](http://hdl.handle.net/2268/237955), 18th International Forum on Aeroelasticity and Structural Dynamics, IFASD 2019. Bilocq Amaury, [Implementation of a viscous-inviscid interaction scheme in a finite element full potential solver](http://hdl.handle.net/2268/252195), Master thesis, University of Liège, 2020. diff --git a/dart/benchmark/onera.py b/dart/benchmark/onera.py index 27deb9afdaa967988032b925e07590b0c66d61f9..08e2f85e3d40dcfe2b3e21696f871645d320cf8f 100644 --- a/dart/benchmark/onera.py +++ b/dart/benchmark/onera.py @@ -27,14 +27,6 @@ import fwk from fwk.testing import * from fwk.coloring import ccolors -try: - import tboxVtk - BestWriter = tboxVtk.VtkExport - canPost = True -except: - BestWriter = tbox.GmshExport - canPost = False - def newton(pbl): from fwk.wutils import parseargs import dart diff --git a/dart/src/wAdjoint.cpp b/dart/src/wAdjoint.cpp index 0750bc08ab009142758781f26385ec47145ed88c..00e62aa3463dcd1ffe109e2bd7c81b572e91399d 100644 --- a/dart/src/wAdjoint.cpp +++ b/dart/src/wAdjoint.cpp @@ -137,8 +137,8 @@ void Adjoint::run() << std::setw(15) << std::right << "Res[lambdaCd]" << std::endl; std::cout << std::fixed << std::setprecision(5); std::cout << std::setw(15) << std::left << "" - << std::setw(15) << std::right << log10((dRu_U * Eigen::Map<Eigen::VectorXd>(lamClFlo.data(), lamClFlo.size()) - Eigen::Map<Eigen::VectorXd>(dCf_U[0].data(), dCf_U[0].size())).norm()) - << std::setw(15) << std::right << log10((dRu_U * Eigen::Map<Eigen::VectorXd>(lamCdFlo.data(), lamCdFlo.size()) - Eigen::Map<Eigen::VectorXd>(dCf_U[1].data(), dCf_U[1].size())).norm()) << std::endl; + << std::setw(15) << std::right << log10((dRu_U.transpose() * Eigen::Map<Eigen::VectorXd>(lamClFlo.data(), lamClFlo.size()) - Eigen::Map<Eigen::VectorXd>(dCf_U[0].data(), dCf_U[0].size())).norm()) + << std::setw(15) << std::right << log10((dRu_U.transpose() * Eigen::Map<Eigen::VectorXd>(lamCdFlo.data(), lamCdFlo.size()) - Eigen::Map<Eigen::VectorXd>(dCf_U[1].data(), dCf_U[1].size())).norm()) << std::endl; // aoa gradients std::cout << std::setw(15) << std::left << "AoA gradients" << std::setw(15) << std::right << "dCl_dAoA" @@ -153,8 +153,8 @@ void Adjoint::run() << std::setw(15) << std::right << "Res[lambdaCd]" << std::endl; std::cout << std::fixed << std::setprecision(5); std::cout << std::setw(15) << std::left << "" - << std::setw(15) << std::right << log10((dRx_X * Eigen::Map<Eigen::VectorXd>(lamClMsh.data(), lamClMsh.size()) - Eigen::Map<Eigen::VectorXd>(dCf_X[0].data(), dCf_X[0].size())).norm()) - << std::setw(15) << std::right << log10((dRx_X * Eigen::Map<Eigen::VectorXd>(lamCdMsh.data(), lamCdMsh.size()) - Eigen::Map<Eigen::VectorXd>(dCf_X[1].data(), dCf_X[1].size())).norm()) << std::endl; + << std::setw(15) << std::right << log10((dRx_X.transpose() * Eigen::Map<Eigen::VectorXd>(lamClMsh.data(), lamClMsh.size()) - Eigen::Map<Eigen::VectorXd>(dCf_X[0].data(), dCf_X[0].size())).norm()) + << std::setw(15) << std::right << log10((dRx_X.transpose() * Eigen::Map<Eigen::VectorXd>(lamCdMsh.data(), lamCdMsh.size()) - Eigen::Map<Eigen::VectorXd>(dCf_X[1].data(), dCf_X[1].size())).norm()) << std::endl; // mesh gradients std::cout << std::setw(15) << std::left << "Mesh gradients" << std::setw(15) << std::right << "Norm[dCl_dX]"