[aspect-devel] The output of nonadiabatic_temperature

Nan Zhang Nan.Zhang at colorado.edu
Sun Oct 23 20:08:26 PDT 2016


Hi Juliane,

Sorry for my late reply due to a conference. The attached is my compiling
error message
***********************************************************************
[  0%] [  0%] Building CXX object
CMakeFiles/aspect.dir/source/postprocess/visualization.cc.o
[  1%] [  1%] Building CXX object
CMakeFiles/aspect.dir/source/postprocess/visualization/compositional_vector.cc.o
Building CXX object
CMakeFiles/aspect.dir/source/postprocess/visualization/specific_heat.cc.o
Building CXX object
CMakeFiles/aspect.dir/source/postprocess/visualization/thermal_conductivity.cc.o
/group/pawsey0138/znan/sw_packages/aspect_trilinos/aspect_develop/source/postprocess/visualization.cc:
In instantiation of 'std::pair<std::basic_string<char>,
std::basic_string<char> >
aspect::Postprocess::Visualization<dim>::execute(dealii::TableHandler&)
[with int dim = 2]':
/group/pawsey0138/znan/sw_packages/aspect_trilinos/aspect_develop/source/postprocess/visualization.cc:988:5:
  required from here
/group/pawsey0138/znan/sw_packages/aspect_trilinos/aspect_develop/source/postprocess/visualization.cc:297:7:
error: invalid use of incomplete type 'const class
aspect::LateralAveraging<2>'
       this->get_lateral_averaging().get_temperature_averages(ave_temp);
       ^
In file included from
/group/pawsey0138/znan/sw_packages/aspect_trilinos/aspect_develop/include/aspect/postprocess/interface.h:27:0,
                 from
/group/pawsey0138/znan/sw_packages/aspect_trilinos/aspect_develop/include/aspect/postprocess/visualization.h:25,
                 from
/group/pawsey0138/znan/sw_packages/aspect_trilinos/aspect_develop/source/postprocess/visualization.cc:22:
/group/pawsey0138/znan/sw_packages/aspect_trilinos/aspect_develop/include/aspect/simulator_access.h:55:28:
error: declaration of 'const class aspect::LateralAveraging<2>'
   template <int dim> class LateralAveraging;
                            ^
[  2%] Building CXX object
CMakeFiles/aspect.dir/source/postprocess/visualization/seismic_vp.cc.o
make[2]: *** [CMakeFiles/aspect.dir/source/postprocess/visualization.cc.o]
Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/aspect.dir/all] Error 2
make: *** [all] Error 2

***********************************************************************

My Aspect modifications include 3 parts: (1) adding a array
in visualization.h
*****************************************
template <int dim>
class Visualization : public Interface<dim>, public
::aspect::SimulatorAccess<dim>
{
...
public:
std::vector<double> ave_temp;
...
}
*****************************************

(2) getting the average temperature in visualization.cc like
*****************************************
template <int dim>
std::pair<std::string,std::string>
Visualization<dim>::execute (TableHandler &statistics)
{
...
ave_temp.resize(50);
this->get_lateral_averaging().get_temperature_averages(ave_temp);
...
}
*****************************************

(3) changing the adiabatic temperature to average temperature
in nonadiabatic_temperature.cc like
******************************************
template <int dim>
      void
      NonadiabaticTemperature<dim>::
      compute_derived_quantities_vector (const std::vector<Vector<double> >
             &uh,
                               const std::vector<std::vector<Tensor<1,dim>
> > &,
                               const std::vector<std::vector<Tensor<2,dim>
> > &,
                               const std::vector<Point<dim> > &,
                               const std::vector<Point<dim> >
&evaluation_points,

 std::vector<Vector<double>>&computed_quantities) const
{...
for (unsigned int q=0; q<n_quadrature_points; ++q)
          {
            const double temperature =
uh[q][this->introspection().component_indices.temperature];

            //computed_quantities[q](0) = temperature -
this->get_adiabatic_conditions().temperature(evaluation_points[q]);
            double depth =
this->get_geometry_model().depth(evaluation_points[q]);
            const unsigned int idx = static_cast<unsigned
int>((ave_temp.size()-1) * depth /
this->get_geometry_model().maximal_depth());
            double delta_temperature = temperature-ave_temp[idx];
            computed_quantities[q](0) = delta_temperature;
          }
...
}
******************************************

>From the error, I feel that I may not understand the structure. I wonder if
you guys could give me some hints how to transfer average temperature into
nonadiabatic_temperature.cc?

Bests,
Nan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/aspect-devel/attachments/20161024/ff61b5ec/attachment.html>


More information about the Aspect-devel mailing list