diff --git a/dart/src/wAdjoint.cpp b/dart/src/wAdjoint.cpp
index cb48a3a68a918be3c752f0d3751dc6dfeb67ba95..3e58eae87ff04a858830045c7ad2269da7b12396 100644
--- a/dart/src/wAdjoint.cpp
+++ b/dart/src/wAdjoint.cpp
@@ -83,6 +83,7 @@ void Adjoint::run()
 
     // Display solver parameters
     std::cout << "--- Adjoint solver ---\n"
+              << "Inner solver: " << *linsol
               << "Number of threads: " << nthreads << "\n"
               << std::endl;
 
@@ -382,7 +383,7 @@ void Adjoint::buildGradientLoadsFlow(Eigen::SparseMatrix<double, Eigen::RowMajor
         tbb::spin_mutex::scoped_lock lock(mutex);
         for (size_t i = 0; i < e->nodes.size(); ++i)
         {
-            int rowi = bnd.nMap.at(e->nodes[i]);
+            int rowi = static_cast<int>(bnd.nMap.at(e->nodes[i]));
             for (int m = 0; m < 3; ++m)
             {
                 for (size_t j = 0; j < eV->nodes.size(); ++j)
@@ -619,7 +620,7 @@ void Adjoint::buildGradientLoadsMesh(Eigen::SparseMatrix<double, Eigen::RowMajor
         tbb::spin_mutex::scoped_lock lock(mutex);
         for (size_t i = 0; i < e->nodes.size(); ++i)
         {
-            int rowi = bnd.nMap.at(e->nodes[i]);
+            int rowi = static_cast<int>(bnd.nMap.at(e->nodes[i]));
             for (int m = 0; m < 3; ++m)
             {
                 // surface
@@ -632,7 +633,7 @@ void Adjoint::buildGradientLoadsMesh(Eigen::SparseMatrix<double, Eigen::RowMajor
                 // volume
                 for (size_t j = 0; j < eV->nodes.size(); ++j)
                 {
-                    size_t rowj = eV->nodes[j]->row;
+                    int rowj = eV->nodes[j]->row;
                     for (int n = 0; n < sol->pbl->nDim; ++n)
                         T.push_back(Eigen::Triplet<double>(3 * rowi + m, sol->pbl->nDim * rowj + n, Aev(3 * i + m, sol->pbl->nDim * j + n)));
                 }