From 7b79ac8535c6d0836a6ac7f3e204b4afd8523a33 Mon Sep 17 00:00:00 2001
From: acrovato <a.crovato@uliege.be>
Date: Thu, 14 Oct 2021 16:53:55 +0200
Subject: [PATCH] Correct residual display. Add doc link.

---
 README.md               | 2 ++
 dart/benchmark/onera.py | 8 --------
 dart/src/wAdjoint.cpp   | 8 ++++----
 3 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/README.md b/README.md
index a5a8976..fe67eec 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 27deb9a..08e2f85 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 0750bc0..00e62aa 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]"
-- 
GitLab