[cig-commits] r1286 - in branches/active_compositions: . cookbooks include/aspect include/aspect/particle include/aspect/postprocess include/aspect/velocity_boundary_conditions source/compositional_initial_conditions source/material_model source/postprocess source/simulator tests/adiabatic_conditions tests/box-first-time-step tests/box-first-time-step-alternate-bc tests/conservative_with_mpi tests/graphical_output tests/inclusion_2 tests/inclusion_4 tests/inclusion_adaptive tests/non_conservative_with_mpi tests/passive_comp tests/sol_cx_2 tests/sol_cx_2_conservative tests/sol_cx_2_normalized_pressure tests/sol_cx_2_q3 tests/sol_cx_4 tests/sol_cx_4_conservative tests/sol_cx_4_normalized_pressure tests/sol_cx_4_normalized_pressure_large_static_pressure tests/sol_cx_4_normalized_pressure_low_solver_tolerance tests/sol_kz_2 tests/sol_kz_2_conservative tests/sol_kz_2_q3 tests/sol_kz_4 tests/sol_kz_4_conservative
dannberg at dealii.org
dannberg at dealii.org
Thu Oct 18 13:18:18 PDT 2012
Author: dannberg
Date: 2012-10-18 14:18:18 -0600 (Thu, 18 Oct 2012)
New Revision: 1286
Modified:
branches/active_compositions/
branches/active_compositions/cookbooks/table_model.prm
branches/active_compositions/include/aspect/particle/integrator.h
branches/active_compositions/include/aspect/particle/output.h
branches/active_compositions/include/aspect/particle/particle.h
branches/active_compositions/include/aspect/particle/world.h
branches/active_compositions/include/aspect/postprocess/tracer.h
branches/active_compositions/include/aspect/simulator.h
branches/active_compositions/include/aspect/velocity_boundary_conditions/interface.h
branches/active_compositions/source/compositional_initial_conditions/interface.cc
branches/active_compositions/source/material_model/steinberger.cc
branches/active_compositions/source/material_model/table.cc
branches/active_compositions/source/postprocess/tracer.cc
branches/active_compositions/source/postprocess/visualization.cc
branches/active_compositions/source/simulator/core.cc
branches/active_compositions/source/simulator/helper_functions.cc
branches/active_compositions/source/simulator/initial_conditions.cc
branches/active_compositions/source/simulator/simulator_access.cc
branches/active_compositions/source/simulator/solver.cc
branches/active_compositions/tests/adiabatic_conditions/depthaverage.plt
branches/active_compositions/tests/adiabatic_conditions/screen-output
branches/active_compositions/tests/adiabatic_conditions/statistics
branches/active_compositions/tests/box-first-time-step-alternate-bc/screen-output
branches/active_compositions/tests/box-first-time-step-alternate-bc/statistics
branches/active_compositions/tests/box-first-time-step/screen-output
branches/active_compositions/tests/box-first-time-step/statistics
branches/active_compositions/tests/conservative_with_mpi/screen-output
branches/active_compositions/tests/conservative_with_mpi/statistics
branches/active_compositions/tests/graphical_output/screen-output
branches/active_compositions/tests/graphical_output/statistics
branches/active_compositions/tests/inclusion_2/screen-output
branches/active_compositions/tests/inclusion_2/statistics
branches/active_compositions/tests/inclusion_4/screen-output
branches/active_compositions/tests/inclusion_4/statistics
branches/active_compositions/tests/inclusion_adaptive/screen-output
branches/active_compositions/tests/inclusion_adaptive/statistics
branches/active_compositions/tests/non_conservative_with_mpi/screen-output
branches/active_compositions/tests/non_conservative_with_mpi/statistics
branches/active_compositions/tests/passive_comp/depthaverage.plt
branches/active_compositions/tests/passive_comp/screen-output
branches/active_compositions/tests/passive_comp/statistics
branches/active_compositions/tests/sol_cx_2/screen-output
branches/active_compositions/tests/sol_cx_2/statistics
branches/active_compositions/tests/sol_cx_2_conservative/screen-output
branches/active_compositions/tests/sol_cx_2_conservative/statistics
branches/active_compositions/tests/sol_cx_2_normalized_pressure/screen-output
branches/active_compositions/tests/sol_cx_2_normalized_pressure/statistics
branches/active_compositions/tests/sol_cx_2_q3/screen-output
branches/active_compositions/tests/sol_cx_2_q3/statistics
branches/active_compositions/tests/sol_cx_4/screen-output
branches/active_compositions/tests/sol_cx_4/statistics
branches/active_compositions/tests/sol_cx_4_conservative/screen-output
branches/active_compositions/tests/sol_cx_4_conservative/statistics
branches/active_compositions/tests/sol_cx_4_normalized_pressure/screen-output
branches/active_compositions/tests/sol_cx_4_normalized_pressure/statistics
branches/active_compositions/tests/sol_cx_4_normalized_pressure_large_static_pressure/screen-output
branches/active_compositions/tests/sol_cx_4_normalized_pressure_large_static_pressure/statistics
branches/active_compositions/tests/sol_cx_4_normalized_pressure_low_solver_tolerance/screen-output
branches/active_compositions/tests/sol_cx_4_normalized_pressure_low_solver_tolerance/statistics
branches/active_compositions/tests/sol_kz_2/screen-output
branches/active_compositions/tests/sol_kz_2/statistics
branches/active_compositions/tests/sol_kz_2_conservative/screen-output
branches/active_compositions/tests/sol_kz_2_conservative/statistics
branches/active_compositions/tests/sol_kz_2_q3/screen-output
branches/active_compositions/tests/sol_kz_2_q3/statistics
branches/active_compositions/tests/sol_kz_4/screen-output
branches/active_compositions/tests/sol_kz_4/statistics
branches/active_compositions/tests/sol_kz_4_conservative/screen-output
branches/active_compositions/tests/sol_kz_4_conservative/statistics
Log:
merge from mainline
Property changes on: branches/active_compositions
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/compositional:1141-1251
/branches/fully-nonlinear:542-728
+ /branches/compositional:1141-1251
/branches/fully-nonlinear:542-728
/trunk/aspect:1257-1285
Modified: branches/active_compositions/cookbooks/table_model.prm
===================================================================
--- branches/active_compositions/cookbooks/table_model.prm 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/cookbooks/table_model.prm 2012-10-18 20:18:18 UTC (rev 1286)
@@ -71,7 +71,7 @@
subsection Viscosity
set Reference Viscosity = 5e24
set Viscosity increase lower mantle = 1e0
- set ViscositycModel = Exponential
+ set Viscosity Model = Exponential
subsection Composite
set Activation energy diffusion = 335e3
set Activation energy dislocation = 540e3
Modified: branches/active_compositions/include/aspect/particle/integrator.h
===================================================================
--- branches/active_compositions/include/aspect/particle/integrator.h 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/include/aspect/particle/integrator.h 2012-10-18 20:18:18 UTC (rev 1286)
@@ -1,18 +1,18 @@
/*
Copyright (C) 2011, 2012 by the authors of the ASPECT code.
-
+
This file is part of ASPECT.
-
+
ASPECT is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-
+
ASPECT is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with ASPECT; see the file doc/COPYING. If not see
<http://www.gnu.org/licenses/>.
@@ -27,258 +27,594 @@
namespace aspect
{
- namespace Particle
+ namespace Particle
+ {
+ // Integrator is an abstract class defining virtual methods for performing integration of
+ // particle paths through the simulation velocity field
+ template <int dim, class T>
+ class Integrator
{
- // Integrator is an abstract class defining virtual methods for performing integration of
- // particle paths through the simulation velocity field
- template <int dim, class T>
- class Integrator {
- public:
- // Perform an integration step of moving the particles by the specified timestep dt.
- // Implementations of this function should update the particle location.
- // If the integrator requires multiple internal steps, this should return true until
- // all internal steps are finished. Between calls to this, the particles will be moved
- // based on the velocities at their newly specified positions.
- virtual bool integrate_step(std::multimap<LevelInd, T> &particles, double dt) = 0;
-
- // Specify the MPI types and data sizes involved in transferring integration related
- // information between processes. If the integrator samples velocities at different
- // locations and the particle moves between processes during the integration step,
- // the sampled velocities must be transferred with the particle.
- virtual void add_mpi_types(std::vector<MPIDataInfo> &data_info) = 0;
-
- // Must reutnr data length in bytes of the integration related data
- // for a particle in a given format.
- virtual unsigned int data_len(ParticleDataFormat format) const = 0;
- // Read integration related data for a particle specified by id_num
- // Returns the data pointer updated to point to the next unwritten byte
- virtual char *read_data(ParticleDataFormat format, double id_num, char *data) = 0;
- // Write integration related data for a particle specified by id_num
- // Returns the data pointer updated to point to the next unwritten byte
- virtual char *write_data(ParticleDataFormat format, double id_num, char *data) = 0;
+ public:
+ virtual ~Integrator(void) {};
+
+ // Perform an integration step of moving the particles by the specified timestep dt.
+ // Implementations of this function should update the particle location.
+ // If the integrator requires multiple internal steps, this should return true until
+ // all internal steps are finished. Between calls to this, the particles will be moved
+ // based on the velocities at their newly specified positions.
+ virtual bool integrate_step(std::multimap<LevelInd, T> &particles, double dt) = 0;
+
+ // Specify the MPI types and data sizes involved in transferring integration related
+ // information between processes. If the integrator samples velocities at different
+ // locations and the particle moves between processes during the integration step,
+ // the sampled velocities must be transferred with the particle.
+ virtual void add_mpi_types(std::vector<MPIDataInfo> &data_info) = 0;
+
+ // Must return data length in bytes of the integration related data
+ // for a particle in a given format.
+ virtual unsigned int data_len(ParticleDataFormat format) const = 0;
+
+ // Read integration related data for a particle specified by id_num
+ // Returns the data pointer updated to point to the next unwritten byte
+ virtual char *read_data(ParticleDataFormat format, double id_num, char *data) = 0;
+
+ // Write integration related data for a particle specified by id_num
+ // Returns the data pointer updated to point to the next unwritten byte
+ virtual char *write_data(ParticleDataFormat format, double id_num, char *data) = 0;
+ };
+
+ // Euler scheme integrator, where y_{n+1} = y_n + dt * v(y_n)
+ // This requires only one step per integration, and doesn't involve any extra data.
+ template <int dim, class T>
+ class EulerIntegrator : public Integrator<dim, T>
+ {
+ public:
+ virtual bool integrate_step(std::multimap<LevelInd, T> &particles, double dt)
+ {
+ typename std::multimap<LevelInd, T>::iterator it;
+ Point<dim> loc, vel;
+
+ for (it=particles.begin(); it!=particles.end(); ++it)
+ {
+ loc = it->second.location();
+ vel = it->second.velocity();
+ it->second.set_location(loc + dt*vel);
+ }
+
+ return false;
};
-
- // Euler scheme integrator, where y_{n+1} = y_n + dt * v(y_n)
- // This requires only one step per integration, and doesn't involve any extra data.
- template <int dim, class T>
- class EulerIntegrator : public Integrator<dim, T> {
- public:
- virtual bool integrate_step(std::multimap<LevelInd, T> &particles, double dt) {
- typename std::multimap<LevelInd, T>::iterator it;
- Point<dim> loc, vel;
-
- for (it=particles.begin();it!=particles.end();++it) {
- loc = it->second.location();
- vel = it->second.velocity();
- it->second.set_location(loc + dt*vel);
+ virtual void add_mpi_types(std::vector<MPIDataInfo> &data_info) {};
+ virtual unsigned int data_len(ParticleDataFormat format) const
+ {
+ return 0;
+ };
+ virtual char *read_data(ParticleDataFormat format, double id_num, char *data)
+ {
+ return data;
+ };
+ virtual char *write_data(ParticleDataFormat format, double id_num, char *data)
+ {
+ return data;
+ };
+ };
+
+ // Runge Kutta second order integrator, where y_{n+1} = y_n + dt*f(k_1, k_1 = v(
+ // This scheme requires storing the original location, and the read/write_data functions reflect this
+ template <int dim, class T>
+ class RK2Integrator : public Integrator<dim, T>
+ {
+ private:
+ unsigned int _step;
+ std::map<double, Point<dim> > _loc0;
+
+ public:
+ RK2Integrator(void)
+ {
+ _step = 0;
+ _loc0.clear();
+ };
+
+ virtual bool integrate_step(std::multimap<LevelInd, T> &particles, double dt)
+ {
+ typename std::multimap<LevelInd, T>::iterator it;
+ Point<dim> loc, vel;
+ double id_num;
+
+ for (it=particles.begin(); it!=particles.end(); ++it)
+ {
+ id_num = it->second.id_num();
+ loc = it->second.location();
+ vel = it->second.velocity();
+ if (_step == 0)
+ {
+ _loc0[id_num] = loc;
+ it->second.set_location(loc + 0.5*dt*vel);
}
-
- return false;
- };
- virtual void add_mpi_types(std::vector<MPIDataInfo> &data_info) {};
- virtual unsigned int data_len(ParticleDataFormat format) const { return 0; };
- virtual char *read_data(ParticleDataFormat format, double id_num, char *data) { return data; };
- virtual char *write_data(ParticleDataFormat format, double id_num, char *data) { return data; };
+ else if (_step == 1)
+ {
+ it->second.set_location(_loc0[id_num] + dt*vel);
+ }
+ else
+ {
+ // Error!
+ }
+ }
+
+ if (_step == 1) _loc0.clear();
+ _step = (_step+1)%2;
+
+ // Continue until we're at the last step
+ return (_step != 0);
};
-
- // Runge Kutta second order integrator, where y_{n+1} = y_n + dt*f(k_1, k_1 = v(
- // This scheme requires storing the original location, and the read/write_data functions reflect this
- template <int dim, class T>
- class RK2Integrator : public Integrator<dim, T> {
- private:
- unsigned int _step;
- std::map<double, Point<dim> > _loc0;
-
- public:
- RK2Integrator(void) {
- _step = 0;
- _loc0.clear();
- };
-
- virtual bool integrate_step(std::multimap<LevelInd, T> &particles, double dt) {
- typename std::multimap<LevelInd, T>::iterator it;
- Point<dim> loc, vel;
- double id_num;
-
- for (it=particles.begin();it!=particles.end();++it) {
- id_num = it->second.id_num();
- loc = it->second.location();
- vel = it->second.velocity();
- if (_step == 0) {
- _loc0[id_num] = loc;
- it->second.set_location(loc + 0.5*dt*vel);
- } else if (_step == 1) {
- it->second.set_location(_loc0[id_num] + dt*vel);
- } else {
- // Error!
- }
+
+ virtual void add_mpi_types(std::vector<MPIDataInfo> &data_info)
+ {
+ // Add the _loc0 data
+ data_info.push_back(MPIDataInfo("loc0", dim, MPI_DOUBLE, sizeof(double)));
+ };
+
+ virtual unsigned int data_len(ParticleDataFormat format) const
+ {
+ switch (format)
+ {
+ case MPI_DATA:
+ case HDF5_DATA:
+ return dim*sizeof(double);
+ }
+ return 0;
+ };
+
+ virtual char *read_data(ParticleDataFormat format, double id_num, char *data)
+ {
+ char *p = data;
+ unsigned int i;
+
+ switch (format)
+ {
+ case MPI_DATA:
+ case HDF5_DATA:
+ // Read location data
+ for (i=0; i<dim; ++i)
+ {
+ _loc0[id_num](i) = ((double *)p)[0];
+ p += sizeof(double);
+ }
+ break;
+ }
+
+ return p;
+ };
+
+ virtual char *write_data(ParticleDataFormat format, double id_num, char *data)
+ {
+ char *p = data;
+ unsigned int i;
+
+ // Then write our data in the appropriate format
+ switch (format)
+ {
+ case MPI_DATA:
+ case HDF5_DATA:
+ // Write location data
+ for (i=0; i<dim; ++i)
+ {
+ ((double *)p)[0] = _loc0[id_num](i);
+ p += sizeof(double);
+ }
+ break;
+ }
+
+ return p;
+ };
+ };
+
+
+ template <int dim, class T>
+ class RK4Integrator : public Integrator<dim, T>
+ {
+ private:
+ unsigned int _step;
+ std::map<double, Point<dim> > _loc0, _k1, _k2, _k3;
+
+ public:
+ RK4Integrator(void)
+ {
+ _step = 0;
+ _loc0.clear();
+ _k1.clear();
+ _k2.clear();
+ _k3.clear();
+ };
+
+ virtual bool integrate_step(std::multimap<LevelInd, T> &particles, double dt)
+ {
+ typename std::multimap<LevelInd, T>::iterator it;
+ Point<dim> loc, vel, k4;
+ double id_num;
+
+ for (it=particles.begin(); it!=particles.end(); ++it)
+ {
+ id_num = it->second.id_num();
+ loc = it->second.location();
+ vel = it->second.velocity();
+ if (_step == 0)
+ {
+ _loc0[id_num] = loc;
+ _k1[id_num] = dt*vel;
+ it->second.set_location(loc + 0.5*_k1[id_num]);
}
-
- if (_step == 1) _loc0.clear();
- _step = (_step+1)%2;
-
- // Continue until we're at the last step
- return (_step != 0);
- };
-
- virtual void add_mpi_types(std::vector<MPIDataInfo> &data_info) {
- // Add the _loc0 data
- data_info.push_back(MPIDataInfo("loc0", dim, MPI_DOUBLE, sizeof(double)));
- };
-
- virtual unsigned int data_len(ParticleDataFormat format) const {
- switch (format) {
- case MPI_DATA:
- case HDF5_DATA:
- return dim*sizeof(double);
+ else if (_step == 1)
+ {
+ _k2[id_num] = dt*vel;
+ it->second.set_location(_loc0[id_num] + 0.5*_k2[id_num]);
}
- return 0;
- };
-
- virtual char *read_data(ParticleDataFormat format, double id_num, char *data) {
- char *p = data;
- unsigned int i;
-
- switch (format) {
- case MPI_DATA:
- case HDF5_DATA:
- // Read location data
- for (i=0;i<dim;++i) { _loc0[id_num](i) = ((double *)p)[0]; p += sizeof(double); }
- break;
+ else if (_step == 2)
+ {
+ _k3[id_num] = dt*vel;
+ it->second.set_location(_loc0[id_num] + _k3[id_num]);
}
-
- return p;
- };
-
- virtual char *write_data(ParticleDataFormat format, double id_num, char *data) {
- char *p = data;
- unsigned int i;
-
- // Then write our data in the appropriate format
- switch (format) {
- case MPI_DATA:
- case HDF5_DATA:
- // Write location data
- for (i=0;i<dim;++i) { ((double *)p)[0] = _loc0[id_num](i); p += sizeof(double); }
- break;
+ else if (_step == 3)
+ {
+ k4 = dt*vel;
+ it->second.set_location(_loc0[id_num] + (_k1[id_num]+2*_k2[id_num]+2*_k3[id_num]+k4)/6.0);
}
-
- return p;
- };
+ else
+ {
+ // Error!
+ }
+ }
+
+ _step = (_step+1)%4;
+ if (_step == 0)
+ {
+ _loc0.clear();
+ _k1.clear();
+ _k2.clear();
+ _k3.clear();
+ }
+
+ // Continue until we're at the last step
+ return (_step != 0);
};
-
- template <int dim, class T>
- class RK4Integrator : public Integrator<dim, T> {
- private:
- unsigned int _step;
- std::map<double, Point<dim> > _loc0, _k1, _k2, _k3;
-
- public:
- RK4Integrator(void) {
- _step = 0;
- _loc0.clear();
- _k1.clear();
- _k2.clear();
- _k3.clear();
- };
-
- virtual bool integrate_step(std::multimap<LevelInd, T> &particles, double dt) {
- typename std::multimap<LevelInd, T>::iterator it;
- Point<dim> loc, vel, k4;
- double id_num;
-
- for (it=particles.begin();it!=particles.end();++it) {
- id_num = it->second.id_num();
- loc = it->second.location();
- vel = it->second.velocity();
- if (_step == 0) {
+ virtual void add_mpi_types(std::vector<MPIDataInfo> &data_info)
+ {
+ // Add the _loc0, _k1, _k2, and _k3 data
+ data_info.push_back(MPIDataInfo("loc0", dim, MPI_DOUBLE, sizeof(double)));
+ data_info.push_back(MPIDataInfo("k1", dim, MPI_DOUBLE, sizeof(double)));
+ data_info.push_back(MPIDataInfo("k2", dim, MPI_DOUBLE, sizeof(double)));
+ data_info.push_back(MPIDataInfo("k3", dim, MPI_DOUBLE, sizeof(double)));
+ };
+
+ virtual unsigned int data_len(ParticleDataFormat format) const
+ {
+ switch (format)
+ {
+ case MPI_DATA:
+ case HDF5_DATA:
+ return 4*dim*sizeof(double);
+ }
+ return 0;
+ };
+
+ virtual char *read_data(ParticleDataFormat format, double id_num, char *data)
+ {
+ char *p = data;
+ unsigned int i;
+
+ switch (format)
+ {
+ case MPI_DATA:
+ case HDF5_DATA:
+ // Read location data
+ for (i=0; i<dim; ++i)
+ {
+ _loc0[id_num](i) = ((double *)p)[0];
+ p += sizeof(double);
+ }
+ // Read k1, k2 and k3
+ for (i=0; i<dim; ++i)
+ {
+ _k1[id_num](i) = ((double *)p)[0];
+ p += sizeof(double);
+ }
+ for (i=0; i<dim; ++i)
+ {
+ _k2[id_num](i) = ((double *)p)[0];
+ p += sizeof(double);
+ }
+ for (i=0; i<dim; ++i)
+ {
+ _k3[id_num](i) = ((double *)p)[0];
+ p += sizeof(double);
+ }
+ break;
+ }
+
+ return p;
+ };
+
+ virtual char *write_data(ParticleDataFormat format, double id_num, char *data)
+ {
+ char *p = data;
+ unsigned int i;
+
+ // Then write our data in the appropriate format
+ switch (format)
+ {
+ case MPI_DATA:
+ case HDF5_DATA:
+ // Write location data
+ for (i=0; i<dim; ++i)
+ {
+ ((double *)p)[0] = _loc0[id_num](i);
+ p += sizeof(double);
+ }
+ // Write k1, k2 and k3
+ for (i=0; i<dim; ++i)
+ {
+ ((double *)p)[0] = _k1[id_num](i);
+ p += sizeof(double);
+ }
+ for (i=0; i<dim; ++i)
+ {
+ ((double *)p)[0] = _k2[id_num](i);
+ p += sizeof(double);
+ }
+ for (i=0; i<dim; ++i)
+ {
+ ((double *)p)[0] = _k3[id_num](i);
+ p += sizeof(double);
+ }
+ break;
+ }
+
+ return p;
+ };
+ };
+
+ // Integrator which chooses Euler, RK2 or RK4 depending on characteristics of the cell a particle is in
+ // Currently used for research only
+ template <int dim, class T>
+ class HybridIntegrator : public Integrator<dim, T>
+ {
+ private:
+ enum IntegrationScheme
+ {
+ SCHEME_UNDEFINED,
+ SCHEME_EULER,
+ SCHEME_RK2,
+ SCHEME_RK4
+ };
+
+ unsigned int _step;
+ std::map<double, Point<dim> > _loc0, _k1, _k2, _k3;
+ std::map<double, IntegrationScheme> _scheme;
+ const parallel::distributed::Triangulation<dim> *_tria;
+ const DoFHandler<dim> *_dh;
+
+ virtual IntegrationScheme select_scheme(const std::vector<Point<dim> > &cell_vertices, const std::vector<Point<dim> > &cell_velocities)
+ {
+ return cell_vertices[0][0] > 0.5 ? SCHEME_RK4 : SCHEME_EULER;
+ };
+
+ public:
+ HybridIntegrator(const parallel::distributed::Triangulation<dim> *new_tria, const DoFHandler<dim> *new_dh)
+ {
+ _step = 0;
+ _loc0.clear();
+ _k1.clear();
+ _k2.clear();
+ _k3.clear();
+ _scheme.clear();
+ _tria = new_tria;
+ _dh = new_dh;
+ };
+
+ virtual bool integrate_step(std::multimap<LevelInd, T> &particles, double dt)
+ {
+ typename std::multimap<LevelInd, T>::iterator it;
+ Point<dim> loc, vel, k4;
+ double id_num;
+ LevelInd cur_level_ind;
+ IntegrationScheme cur_scheme;
+ typename parallel::distributed::Triangulation<dim>::cell_iterator found_cell;
+
+ // If this is the first step, go through all the cells and determine
+ // which integration scheme the particles in each cell should use
+ if (_step == 0)
+ {
+ std::vector<Point<dim> > cell_vertices, cell_velocities;
+ cell_vertices.resize(GeometryInfo<dim>::vertices_per_cell);
+ cell_velocities.resize(GeometryInfo<dim>::vertices_per_cell);
+ cur_level_ind.first = cur_level_ind.second = -1;
+ cur_scheme = SCHEME_UNDEFINED;
+
+ for (it=particles.begin(); it!=particles.end(); ++it)
+ {
+ if (cur_level_ind != it->first)
+ {
+ cur_level_ind = it->first;
+ found_cell = typename DoFHandler<dim>::active_cell_iterator(_tria, cur_level_ind.first, cur_level_ind.second, _dh);
+ for (unsigned int i=0; i<GeometryInfo<dim>::vertices_per_cell; ++i) cell_vertices[i] = found_cell->vertex(i);
+
+ cur_scheme = select_scheme(cell_vertices, cell_velocities);
+ }
+ _scheme[it->second.id_num()] = cur_scheme;
+ }
+ }
+
+ for (it=particles.begin(); it!=particles.end(); ++it)
+ {
+ id_num = it->second.id_num();
+ loc = it->second.location();
+ vel = it->second.velocity();
+ switch (_scheme[id_num])
+ {
+ case SCHEME_EULER:
+ if (_step == 0)
+ {
+ it->second.set_location(loc + dt*vel);
+ }
+ it->second.set_vel_check(false);
+ break;
+ case SCHEME_RK2:
+ if (_step == 0)
+ {
_loc0[id_num] = loc;
+ it->second.set_location(loc + 0.5*dt*vel);
+ }
+ else if (_step == 1)
+ {
+ it->second.set_location(_loc0[id_num] + dt*vel);
+ }
+ if (_step != 0) it->second.set_vel_check(false);
+ break;
+ case SCHEME_RK4:
+ if (_step == 0)
+ {
+ _loc0[id_num] = loc;
_k1[id_num] = dt*vel;
it->second.set_location(loc + 0.5*_k1[id_num]);
- } else if (_step == 1) {
+ }
+ else if (_step == 1)
+ {
_k2[id_num] = dt*vel;
it->second.set_location(_loc0[id_num] + 0.5*_k2[id_num]);
- } else if (_step == 2) {
+ }
+ else if (_step == 2)
+ {
_k3[id_num] = dt*vel;
it->second.set_location(_loc0[id_num] + _k3[id_num]);
- } else if (_step == 3) {
+ }
+ else if (_step == 3)
+ {
k4 = dt*vel;
it->second.set_location(_loc0[id_num] + (_k1[id_num]+2*_k2[id_num]+2*_k3[id_num]+k4)/6.0);
- } else {
- // Error!
- }
+ }
+ break;
+ default:
+ AssertThrow(false, ExcMessage("Unknown integration scheme for hybrid integrator."));
+ break;
}
-
- _step = (_step+1)%4;
- if (_step == 0) {
- _loc0.clear();
- _k1.clear();
- _k2.clear();
- _k3.clear();
- }
-
- // Continue until we're at the last step
- return (_step != 0);
- };
-
- virtual void add_mpi_types(std::vector<MPIDataInfo> &data_info) {
- // Add the _loc0, _k1, _k2, and _k3 data
- data_info.push_back(MPIDataInfo("loc0", dim, MPI_DOUBLE, sizeof(double)));
- data_info.push_back(MPIDataInfo("k1", dim, MPI_DOUBLE, sizeof(double)));
- data_info.push_back(MPIDataInfo("k2", dim, MPI_DOUBLE, sizeof(double)));
- data_info.push_back(MPIDataInfo("k3", dim, MPI_DOUBLE, sizeof(double)));
- };
-
- virtual unsigned int data_len(ParticleDataFormat format) const {
- switch (format) {
- case MPI_DATA:
- case HDF5_DATA:
- return 4*dim*sizeof(double);
- }
- return 0;
- };
-
- virtual char *read_data(ParticleDataFormat format, double id_num, char *data) {
- char *p = data;
- unsigned int i;
-
- switch (format) {
- case MPI_DATA:
- case HDF5_DATA:
- // Read location data
- for (i=0;i<dim;++i) { _loc0[id_num](i) = ((double *)p)[0]; p += sizeof(double); }
- // Read k1, k2 and k3
- for (i=0;i<dim;++i) { _k1[id_num](i) = ((double *)p)[0]; p += sizeof(double); }
- for (i=0;i<dim;++i) { _k2[id_num](i) = ((double *)p)[0]; p += sizeof(double); }
- for (i=0;i<dim;++i) { _k3[id_num](i) = ((double *)p)[0]; p += sizeof(double); }
- break;
- }
-
- return p;
- };
-
- virtual char *write_data(ParticleDataFormat format, double id_num, char *data) {
- char *p = data;
- unsigned int i;
-
- // Then write our data in the appropriate format
- switch (format) {
- case MPI_DATA:
- case HDF5_DATA:
- // Write location data
- for (i=0;i<dim;++i) { ((double *)p)[0] = _loc0[id_num](i); p += sizeof(double); }
- // Write k1, k2 and k3
- for (i=0;i<dim;++i) { ((double *)p)[0] = _k1[id_num](i); p += sizeof(double); }
- for (i=0;i<dim;++i) { ((double *)p)[0] = _k2[id_num](i); p += sizeof(double); }
- for (i=0;i<dim;++i) { ((double *)p)[0] = _k3[id_num](i); p += sizeof(double); }
- break;
- }
-
- return p;
- };
+ }
+
+ _step = (_step+1)%4;
+ if (_step == 0)
+ {
+ _loc0.clear();
+ _k1.clear();
+ _k2.clear();
+ _k3.clear();
+ _scheme.clear();
+ }
+
+ // Continue until we're at the last step
+ return (_step != 0);
};
- }
+
+ virtual void add_mpi_types(std::vector<MPIDataInfo> &data_info)
+ {
+ // Add the _loc0, _k1, _k2, and _k3 data
+ data_info.push_back(MPIDataInfo("loc0", dim, MPI_DOUBLE, sizeof(double)));
+ data_info.push_back(MPIDataInfo("k1", dim, MPI_DOUBLE, sizeof(double)));
+ data_info.push_back(MPIDataInfo("k2", dim, MPI_DOUBLE, sizeof(double)));
+ data_info.push_back(MPIDataInfo("k3", dim, MPI_DOUBLE, sizeof(double)));
+ data_info.push_back(MPIDataInfo("scheme", 1, MPI_DOUBLE, sizeof(double)));
+ };
+
+ virtual unsigned int data_len(ParticleDataFormat format) const
+ {
+ switch (format)
+ {
+ case MPI_DATA:
+ case HDF5_DATA:
+ return (4*dim+1)*sizeof(double);
+ }
+ return 0;
+ };
+
+ virtual char *read_data(ParticleDataFormat format, double id_num, char *data)
+ {
+ char *p = data;
+ unsigned int i;
+
+ switch (format)
+ {
+ case MPI_DATA:
+ case HDF5_DATA:
+ // Read location data
+ for (i=0; i<dim; ++i)
+ {
+ _loc0[id_num](i) = ((double *)p)[0];
+ p += sizeof(double);
+ }
+ // Read k1, k2 and k3
+ for (i=0; i<dim; ++i)
+ {
+ _k1[id_num](i) = ((double *)p)[0];
+ p += sizeof(double);
+ }
+ for (i=0; i<dim; ++i)
+ {
+ _k2[id_num](i) = ((double *)p)[0];
+ p += sizeof(double);
+ }
+ for (i=0; i<dim; ++i)
+ {
+ _k3[id_num](i) = ((double *)p)[0];
+ p += sizeof(double);
+ }
+ _scheme[id_num] = (IntegrationScheme)((double *)p)[0];
+ p += sizeof(double);
+ break;
+ }
+
+ return p;
+ };
+
+ virtual char *write_data(ParticleDataFormat format, double id_num, char *data)
+ {
+ char *p = data;
+ unsigned int i;
+
+ // Then write our data in the appropriate format
+ switch (format)
+ {
+ case MPI_DATA:
+ case HDF5_DATA:
+ // Write location data
+ for (i=0; i<dim; ++i)
+ {
+ ((double *)p)[0] = _loc0[id_num](i);
+ p += sizeof(double);
+ }
+ // Write k1, k2 and k3
+ for (i=0; i<dim; ++i)
+ {
+ ((double *)p)[0] = _k1[id_num](i);
+ p += sizeof(double);
+ }
+ for (i=0; i<dim; ++i)
+ {
+ ((double *)p)[0] = _k2[id_num](i);
+ p += sizeof(double);
+ }
+ for (i=0; i<dim; ++i)
+ {
+ ((double *)p)[0] = _k3[id_num](i);
+ p += sizeof(double);
+ }
+ // Write the integration scheme for this particle
+ ((double *)p)[0] = _scheme[id_num];
+ p += sizeof(double);
+ break;
+ }
+
+ return p;
+ };
+ };
+ }
}
#endif
Modified: branches/active_compositions/include/aspect/particle/output.h
===================================================================
--- branches/active_compositions/include/aspect/particle/output.h 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/include/aspect/particle/output.h 2012-10-18 20:18:18 UTC (rev 1286)
@@ -1,18 +1,18 @@
/*
Copyright (C) 2011, 2012 by the authors of the ASPECT code.
-
+
This file is part of ASPECT.
-
+
ASPECT is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-
+
ASPECT is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with ASPECT; see the file doc/COPYING. If not see
<http://www.gnu.org/licenses/>.
@@ -31,368 +31,430 @@
namespace aspect
{
- namespace Particle
+ namespace Particle
+ {
+ // Abstract class representing particle output
+ template <int dim, class T>
+ class Output
{
- // Abstract class representing particle output
- template <int dim, class T>
- class Output
+ protected:
+ // Rank and world size of MPI communicator
+ unsigned int self_rank, world_size;
+ // Internal index of file output number, must be incremented by subclasses when they create a new file
+ unsigned int file_index;
+
+ std::string output_dir;
+
+ public:
+ Output(void)
{
- protected:
- // Rank and world size of MPI communicator
- unsigned int self_rank, world_size;
- // Internal index of file output number, must be incremented by subclasses when they create a new file
- unsigned int file_index;
-
- std::string output_dir;
-
- public:
- Output(void) {
- self_rank = Utilities::MPI::this_mpi_process(MPI_COMM_WORLD);
- world_size = Utilities::MPI::n_mpi_processes(MPI_COMM_WORLD);
- file_index = 0;
- };
- void set_output_directory(std::string new_out_dir) { output_dir = new_out_dir; };
- virtual std::string output_particle_data(const std::multimap<LevelInd, T> &particles, const double ¤t_time) = 0;
+ self_rank = Utilities::MPI::this_mpi_process(MPI_COMM_WORLD);
+ world_size = Utilities::MPI::n_mpi_processes(MPI_COMM_WORLD);
+ file_index = 0;
};
-
- template <int dim, class T>
- class NullOutput : public Output<dim, T>
+ virtual ~Output(void) {};
+
+ void set_output_directory(std::string new_out_dir)
{
- public:
- virtual std::string output_particle_data(const std::multimap<LevelInd, T> &particles, const double ¤t_time) { return ""; };
+ output_dir = new_out_dir;
};
-
- template <int dim, class T>
- class ASCIIOutput : public Output<dim, T>
+ virtual std::string output_particle_data(const std::multimap<LevelInd, T> &particles, const double ¤t_time) = 0;
+ };
+
+ template <int dim, class T>
+ class NullOutput : public Output<dim, T>
+ {
+ public:
+ virtual std::string output_particle_data(const std::multimap<LevelInd, T> &particles, const double ¤t_time)
{
- public:
- virtual std::string output_particle_data(const std::multimap<LevelInd, T> &particles, const double ¤t_time) {
- typename std::multimap<LevelInd, T>::const_iterator it;
- unsigned int d;
- std::string output_file_prefix, output_path_prefix, full_filename;
-
- output_file_prefix = "particle-" + Utilities::int_to_string (Output<dim, T>::file_index, 5);
- output_path_prefix = Output<dim, T>::output_dir + output_file_prefix;
- full_filename = output_path_prefix + "." + Utilities::int_to_string(Output<dim, T>::self_rank, 4) + ".txt";
- std::ofstream output (full_filename.c_str());
- if (!output) std::cout << "ERROR: proc " << Output<dim, T>::self_rank << " could not create " << full_filename << std::endl;
- output << "# ";
- for (d=0; d<dim; ++d) output << "pos[" << d << "] ";
- for (d=0; d<dim; ++d) output << "vel[" << d << "] ";
- output << "id\n";
- for (it=particles.begin(); it!=particles.end(); ++it)
- {
- for (d=0; d<dim; ++d) output << it->second.location()[d] << " ";
- for (d=0; d<dim; ++d) output << it->second.velocity()[d] << " ";
- output << it->second.id_num();
- output << "\n";
- }
-
- output.close();
-
- Output<dim, T>::file_index++;
-
- return output_path_prefix;
- };
+ return "";
};
-
- template <int dim, class T>
- class VTUOutput : public Output<dim, T>
+ };
+
+ template <int dim, class T>
+ class ASCIIOutput : public Output<dim, T>
+ {
+ public:
+ virtual std::string output_particle_data(const std::multimap<LevelInd, T> &particles, const double ¤t_time)
{
- /**
- * A list of pairs (time, pvtu_filename) that have so far been written
- * and that we will pass to DataOutInterface::write_pvd_record
- * to create a master file that can make the association
- * between simulation time and corresponding file name (this
- * is done because there is no way to store the simulation
- * time inside the .pvtu or .vtu files).
- */
- std::vector<std::pair<double,std::string> > times_and_pvtu_names;
-
- public:
- virtual std::string output_particle_data(const std::multimap<LevelInd, T> &particles, const double ¤t_time) {
- typename std::multimap<LevelInd, T>::const_iterator it;
- unsigned int d, i;
- DataOut<dim> data_out;
- std::string output_file_prefix, output_path_prefix;
-
- output_file_prefix = "particle-" + Utilities::int_to_string (Output<dim, T>::file_index, 5);
- output_path_prefix = Output<dim, T>::output_dir + output_file_prefix;
-
- const std::string filename = (output_file_prefix +
- "." +
- Utilities::int_to_string(Output<dim, T>::self_rank, 4) +
- ".vtu");
- const std::string full_filename = (Output<dim, T>::output_dir + filename);
-
- std::ofstream output (full_filename.c_str());
- if (!output) std::cout << "ERROR: proc " << Output<dim, T>::self_rank << " could not create " << filename << std::endl;
-
- // Write VTU file XML
- output << "<?xml version=\"1.0\"?>\n";
- output << "<VTKFile type=\"UnstructuredGrid\" version=\"0.1\" byte_order=\"LittleEndian\">\n";
- output << " <UnstructuredGrid>\n";
- output << " <Piece NumberOfPoints=\"" << particles.size() << "\" NumberOfCells=\"" << particles.size() << "\">\n";
-
- // Go through the particles on this domain and print the position of each one
- // TODO: can we change this to dim-dimensions rather than 3?
- output << " <Points>\n";
- output << " <DataArray name=\"Position\" type=\"Float64\" NumberOfComponents=\"3\" Format=\"ascii\">\n";
- for (it=particles.begin(); it!=particles.end(); ++it)
+ typename std::multimap<LevelInd, T>::const_iterator it;
+ unsigned int i;
+ std::string output_file_prefix, output_path_prefix, full_filename;
+ std::vector<MPIDataInfo> data_info;
+ std::vector<MPIDataInfo>::iterator dit;
+ char *particle_data, *p;
+
+ output_file_prefix = "particle-" + Utilities::int_to_string (Output<dim, T>::file_index, 5);
+ output_path_prefix = Output<dim, T>::output_dir + output_file_prefix;
+ full_filename = output_path_prefix + "." + Utilities::int_to_string(Output<dim, T>::self_rank, 4) + ".txt";
+ std::ofstream output (full_filename.c_str());
+ if (!output) std::cout << "ERROR: proc " << Output<dim, T>::self_rank << " could not create " << full_filename << std::endl;
+
+ // Get the data types
+ T::add_mpi_types(data_info);
+
+ // Print the header line
+ output << "# ";
+ for (dit=data_info.begin(); dit!=data_info.end(); ++dit)
+ {
+ // If it's a 1D element, print just the name, otherwise use []
+ if (dit->_num_elems == 1)
{
- output << " ";
- for (d=0; d<3; ++d)
- {
- if (d < dim) output << it->second.location()[d] << " ";
- else output << "0.0 ";
- }
- output << "\n";
+ output << dit->_name << " ";
}
- output << " </DataArray>\n";
- output << " </Points>\n";
-
- // Write cell related data (empty)
- output << " <Cells>\n";
- output << " <DataArray type=\"Int32\" Name=\"connectivity\" Format=\"ascii\">\n";
- for (i=1; i<=particles.size(); ++i) output << " " << i-1 << "\n";
- output << " </DataArray>\n";
- output << " <DataArray type=\"Int32\" Name=\"offsets\" Format=\"ascii\">\n";
- for (i=1; i<=particles.size(); ++i) output << " " << i << "\n";
- output << " </DataArray>\n";
- output << " <DataArray type=\"UInt8\" Name=\"types\" Format=\"ascii\">\n";
- for (i=1; i<=particles.size(); ++i) output << " 1\n";
- output << " </DataArray>\n";
- output << " </Cells>\n";
-
- // Write point related data (id, velocity, etc)
- output << " <PointData Scalars=\"scalars\">\n";
-
- output << " <DataArray type=\"Float64\" Name=\"velocity\" NumberOfComponents=\"3\" Format=\"ascii\">\n";
- for (it=particles.begin(); it!=particles.end(); ++it)
+ else
{
- output << " ";
- for (d=0; d<3; ++d)
+ for (i=0; i<dit->_num_elems; ++i) output << dit->_name << "[" << i << "] ";
+ }
+ }
+ output << "\n";
+
+ // And print the data for each particle
+ particle_data = new char[T::data_len(HDF5_DATA)];
+ for (it=particles.begin(); it!=particles.end(); ++it)
+ {
+ it->second.write_data(HDF5_DATA, particle_data);
+ p = particle_data;
+ for (dit=data_info.begin(); dit!=data_info.end(); ++dit)
+ {
+ // Currently assumes all data is double, may need to change this
+ for (i=0; i<dit->_num_elems; ++i)
{
- if (d < dim) output << it->second.velocity()[d] << " ";
- else output << "0.0 ";
+ output << ((double *)p)[0] << " ";
+ p += sizeof(double);
}
- output << "\n";
}
- output << " </DataArray>\n";
- output << " <DataArray type=\"Float64\" Name=\"id\" Format=\"ascii\">\n";
- for (it=particles.begin(); it!=particles.end(); ++it)
+ output << "\n";
+ }
+ delete[] particle_data;
+
+ output.close();
+
+ Output<dim, T>::file_index++;
+
+ return output_path_prefix;
+ };
+ };
+
+ template <int dim, class T>
+ class VTUOutput : public Output<dim, T>
+ {
+ /**
+ * A list of pairs (time, pvtu_filename) that have so far been written
+ * and that we will pass to DataOutInterface::write_pvd_record
+ * to create a master file that can make the association
+ * between simulation time and corresponding file name (this
+ * is done because there is no way to store the simulation
+ * time inside the .pvtu or .vtu files).
+ */
+ std::vector<std::pair<double,std::string> > times_and_pvtu_names;
+
+ public:
+ virtual std::string output_particle_data(const std::multimap<LevelInd, T> &particles, const double ¤t_time)
+ {
+ typename std::multimap<LevelInd, T>::const_iterator it;
+ unsigned int d, i, num_particles;
+ DataOut<dim> data_out;
+ std::vector<MPIDataInfo> data_info;
+ std::vector<MPIDataInfo>::iterator dit;
+ std::string output_file_prefix, output_path_prefix;
+ unsigned int data_offset;
+ char *particle_data, *p;
+
+ output_file_prefix = "particle-" + Utilities::int_to_string (Output<dim, T>::file_index, 5);
+ output_path_prefix = Output<dim, T>::output_dir + output_file_prefix;
+
+ const std::string filename = (output_file_prefix +
+ "." +
+ Utilities::int_to_string(Output<dim, T>::self_rank, 4) +
+ ".vtu");
+ const std::string full_filename = (Output<dim, T>::output_dir + filename);
+
+ std::ofstream output (full_filename.c_str());
+ if (!output) std::cout << "ERROR: proc " << Output<dim, T>::self_rank << " could not create " << filename << std::endl;
+
+ num_particles = particles.size();
+
+ // Write VTU file XML
+ output << "<?xml version=\"1.0\"?>\n";
+ output << "<VTKFile type=\"UnstructuredGrid\" version=\"0.1\" byte_order=\"LittleEndian\">\n";
+ output << " <UnstructuredGrid>\n";
+ output << " <Piece NumberOfPoints=\"" << num_particles << "\" NumberOfCells=\"" << num_particles << "\">\n";
+
+ // Go through the particles on this domain and print the position of each one
+ // TODO: can we change this to dim-dimensions rather than 3?
+ output << " <Points>\n";
+ output << " <DataArray name=\"Position\" type=\"Float64\" NumberOfComponents=\"3\" Format=\"ascii\">\n";
+ for (it=particles.begin(); it!=particles.end(); ++it)
+ {
+ output << " ";
+ for (d=0; d<3; ++d)
{
- output << " " << it->second.id_num() << "\n";
+ if (d < dim) output << it->second.location()[d] << " ";
+ else output << "0.0 ";
}
- output << " </DataArray>\n";
- output << " </PointData>\n";
-
- output << " </Piece>\n";
- output << " </UnstructuredGrid>\n";
- output << "</VTKFile>\n";
-
- output.close();
-
- // Write the parallel pvtu and pvd files on the root process
- if (Output<dim, T>::self_rank == 0)
+ output << "\n";
+ }
+ output << " </DataArray>\n";
+ output << " </Points>\n";
+
+ // Write cell related data (empty)
+ output << " <Cells>\n";
+ output << " <DataArray type=\"Int32\" Name=\"connectivity\" Format=\"ascii\">\n";
+ for (i=1; i<=num_particles; ++i) output << " " << i-1 << "\n";
+ output << " </DataArray>\n";
+ output << " <DataArray type=\"Int32\" Name=\"offsets\" Format=\"ascii\">\n";
+ for (i=1; i<=num_particles; ++i) output << " " << i << "\n";
+ output << " </DataArray>\n";
+ output << " <DataArray type=\"UInt8\" Name=\"types\" Format=\"ascii\">\n";
+ for (i=1; i<=num_particles; ++i) output << " 1\n";
+ output << " </DataArray>\n";
+ output << " </Cells>\n";
+
+ // Get the data types
+ T::add_mpi_types(data_info);
+
+ // Write data for each particle (id, velocity, etc)
+ output << " <PointData Scalars=\"scalars\">\n";
+
+ // Print the data associated with the particles, skipping the first entry (assumed to be position)
+ particle_data = new char[T::data_len(HDF5_DATA)];
+ dit = data_info.begin();
+ data_offset = dit->_num_elems*dit->_elem_size_bytes;
+ dit++;
+ for (; dit!=data_info.end(); ++dit)
+ {
+ output << " <DataArray type=\"Float64\" Name=\"" << dit->_name << "\" NumberOfComponents=\"" << (dit->_num_elems == 2 ? 3 : dit->_num_elems) << "\" Format=\"ascii\">\n";
+ for (it=particles.begin(); it!=particles.end(); ++it)
{
- const std::string pvtu_filename = (output_path_prefix + ".pvtu");
-
- std::ofstream pvtu_output (pvtu_filename.c_str());
- if (!pvtu_output) std::cout << "ERROR: Could not create " << filename << std::endl;
-
- pvtu_output << "<?xml version=\"1.0\"?>\n";
- pvtu_output << "<VTKFile type=\"PUnstructuredGrid\" version=\"0.1\" byte_order=\"LittleEndian\">\n";
- pvtu_output << " <PUnstructuredGrid GhostLevel=\"0\">\n";
- pvtu_output << " <PPoints>\n";
- pvtu_output << " <PDataArray type=\"Float64\" NumberOfComponents=\"3\" format=\"ascii\"/>\n";
- pvtu_output << " </PPoints>\n";
- pvtu_output << " <PPointData Scalars=\"scalars\">\n";
- pvtu_output << " <PDataArray type=\"Float64\" Name=\"velocity\" NumberOfComponents=\"3\" format=\"ascii\"/>\n";
- pvtu_output << " <PDataArray type=\"Float64\" Name=\"id\" format=\"ascii\"/>\n";
- pvtu_output << " </PPointData>\n";
- for (i=0; i<Output<dim, T>::world_size; ++i)
+ it->second.write_data(HDF5_DATA, particle_data);
+ p = particle_data+data_offset;
+ output << " ";
+ for (d=0; d<dit->_num_elems; ++d)
{
- pvtu_output << " <Piece Source=\"" << output_file_prefix << "." << Utilities::int_to_string(i, 4) << ".vtu\"/>\n";
+ output << ((double *)p)[0] << " ";
+ p += sizeof(double);
}
- pvtu_output << " </PUnstructuredGrid>\n";
- pvtu_output << "</VTKFile>\n";
- pvtu_output.close();
-
- times_and_pvtu_names.push_back(std::pair<double,std::string>(current_time, output_file_prefix+".pvtu"));
- const std::string pvd_master_filename = (Output<dim, T>::output_dir + "particle.pvd");
- std::ofstream pvd_master (pvd_master_filename.c_str());
- data_out.write_pvd_record (pvd_master, times_and_pvtu_names);
+ if (dit->_num_elems == 2) output << "0 ";
+ output << "\n";
}
- Output<dim, T>::file_index++;
-
- return output_path_prefix;
- };
+ data_offset += dit->_num_elems*dit->_elem_size_bytes;
+ output << " </DataArray>\n";
+ }
+ delete[] particle_data;
+ output << " </PointData>\n";
+
+ output << " </Piece>\n";
+ output << " </UnstructuredGrid>\n";
+ output << "</VTKFile>\n";
+
+ output.close();
+
+ // Write the parallel pvtu and pvd files on the root process
+ if (Output<dim, T>::self_rank == 0)
+ {
+ const std::string pvtu_filename = (output_path_prefix + ".pvtu");
+
+ std::ofstream pvtu_output (pvtu_filename.c_str());
+ if (!pvtu_output) std::cout << "ERROR: Could not create " << filename << std::endl;
+
+ pvtu_output << "<?xml version=\"1.0\"?>\n";
+ pvtu_output << "<VTKFile type=\"PUnstructuredGrid\" version=\"0.1\" byte_order=\"LittleEndian\">\n";
+ pvtu_output << " <PUnstructuredGrid GhostLevel=\"0\">\n";
+ pvtu_output << " <PPoints>\n";
+ pvtu_output << " <PDataArray type=\"Float64\" NumberOfComponents=\"3\" format=\"ascii\"/>\n";
+ pvtu_output << " </PPoints>\n";
+ pvtu_output << " <PPointData Scalars=\"scalars\">\n";
+
+ for (dit=data_info.begin()+1; dit!=data_info.end(); ++dit)
+ {
+ pvtu_output << " <PDataArray type=\"Float64\" Name=\"" << dit->_name << "\" NumberOfComponents=\"" << (dit->_num_elems == 2 ? 3 : dit->_num_elems) << "\" format=\"ascii\"/>\n";
+ }
+ pvtu_output << " </PPointData>\n";
+ for (i=0; i<Output<dim, T>::world_size; ++i)
+ {
+ pvtu_output << " <Piece Source=\"" << output_file_prefix << "." << Utilities::int_to_string(i, 4) << ".vtu\"/>\n";
+ }
+ pvtu_output << " </PUnstructuredGrid>\n";
+ pvtu_output << "</VTKFile>\n";
+ pvtu_output.close();
+
+ times_and_pvtu_names.push_back(std::pair<double,std::string>(current_time, output_file_prefix+".pvtu"));
+ const std::string pvd_master_filename = (Output<dim, T>::output_dir + "particle.pvd");
+ std::ofstream pvd_master (pvd_master_filename.c_str());
+ data_out.write_pvd_record (pvd_master, times_and_pvtu_names);
+ pvd_master.close();
+ }
+ Output<dim, T>::file_index++;
+
+ return output_path_prefix;
};
-
- template <int dim, class T>
- class HDF5Output : public Output<dim, T>
+ };
+
+ template <int dim, class T>
+ class HDF5Output : public Output<dim, T>
+ {
+ // A set of XDMF data objects to create the XDMF file for particles
+ std::vector<XDMFEntry> xdmf_entries;
+
+ public:
+ virtual std::string output_particle_data(const std::multimap<LevelInd, T> &particles, const double ¤t_time)
{
- // A set of XDMF data objects to create the XDMF file for particles
- std::vector<XDMFEntry> xdmf_entries;
-
- public:
- virtual std::string output_particle_data(const std::multimap<LevelInd, T> &particles, const double ¤t_time) {
- typename std::multimap<LevelInd, T>::const_iterator it;
- unsigned int d, i;
- std::string output_file_prefix, output_path_prefix, full_filename;
-
- output_file_prefix = "particle-" + Utilities::int_to_string (Output<dim, T>::file_index, 5);
- output_path_prefix = Output<dim, T>::output_dir + output_file_prefix;
+ typename std::multimap<LevelInd, T>::const_iterator it;
+ unsigned int d, i;
+ std::string output_file_prefix, output_path_prefix, full_filename;
+
+ output_file_prefix = "particle-" + Utilities::int_to_string (Output<dim, T>::file_index, 5);
+ output_path_prefix = Output<dim, T>::output_dir + output_file_prefix;
#ifdef DEAL_II_HAVE_HDF5
- // TODO: error checking for H5 calls
- hid_t h5_file_id;
- hid_t plist_id, xfer_plist_id, position_dataset_id, velocity_dataset_id, pid_dataset_id;
- hid_t file_dataspace_id, pos_file_dataspace_id, vel_file_dataspace_id, pid_file_dataspace_id;
- hid_t dim_dataspace_id, one_dim_ds_id;
- hid_t dim_mem_ds_id, one_dim_mem_ds_id;
- hid_t pattr_id;
- herr_t status;
- hsize_t dims[2], offset[2], count[2];
- unsigned int mpi_offset, mpi_count, local_particle_count, global_particle_count;
-
- double *pos_data, *vel_data, *id_data;
-
- std::string h5_filename = output_path_prefix+".h5";
-
- // Create parallel file access
- plist_id = H5Pcreate(H5P_FILE_ACCESS);
+ // TODO: error checking for H5 calls
+ hid_t h5_file_id;
+ hid_t plist_id, xfer_plist_id, position_dataset_id, velocity_dataset_id, pid_dataset_id;
+ hid_t file_dataspace_id, pos_file_dataspace_id, vel_file_dataspace_id, pid_file_dataspace_id;
+ hid_t dim_dataspace_id, one_dim_ds_id;
+ hid_t dim_mem_ds_id, one_dim_mem_ds_id;
+ hid_t pattr_id;
+ herr_t status;
+ hsize_t dims[2], offset[2], count[2];
+ unsigned int mpi_offset, mpi_count, local_particle_count, global_particle_count;
+
+ double *pos_data, *vel_data, *id_data;
+
+ std::string h5_filename = output_path_prefix+".h5";
+
+ // Create parallel file access
+ plist_id = H5Pcreate(H5P_FILE_ACCESS);
#ifdef H5_HAVE_PARALLEL
- H5Pset_fapl_mpio(plist_id, MPI_COMM_WORLD, MPI_INFO_NULL);
+ H5Pset_fapl_mpio(plist_id, MPI_COMM_WORLD, MPI_INFO_NULL);
#endif
-
- // Create the file
- h5_file_id = H5Fcreate(h5_filename.c_str(), H5F_ACC_TRUNC, H5P_DEFAULT, plist_id);
-
- // Create the file dataspace descriptions
- local_particle_count = particles.size();
- // TODO: error checking on MPI call
- MPI_Allreduce(&local_particle_count, &global_particle_count, 1, MPI_UNSIGNED, MPI_SUM, MPI_COMM_WORLD);
- dims[0] = global_particle_count;
- dims[1] = 3;
- one_dim_ds_id = H5Screate_simple(1, dims, NULL);
- dim_dataspace_id = H5Screate_simple(2, dims, NULL);
-
- // Create the datasets
+
+ // Create the file
+ h5_file_id = H5Fcreate(h5_filename.c_str(), H5F_ACC_TRUNC, H5P_DEFAULT, plist_id);
+
+ // Create the file dataspace descriptions
+ local_particle_count = particles.size();
+ // TODO: error checking on MPI call
+ MPI_Allreduce(&local_particle_count, &global_particle_count, 1, MPI_UNSIGNED, MPI_SUM, MPI_COMM_WORLD);
+ dims[0] = global_particle_count;
+ dims[1] = 3;
+ one_dim_ds_id = H5Screate_simple(1, dims, NULL);
+ dim_dataspace_id = H5Screate_simple(2, dims, NULL);
+
+ // Create the datasets
#if H5Dcreate_vers == 1
- position_dataset_id = H5Dcreate(h5_file_id, "nodes", H5T_NATIVE_DOUBLE, dim_dataspace_id, H5P_DEFAULT);
- velocity_dataset_id = H5Dcreate(h5_file_id, "velocity", H5T_NATIVE_DOUBLE, dim_dataspace_id, H5P_DEFAULT);
- pid_dataset_id = H5Dcreate(h5_file_id, "id", H5T_NATIVE_DOUBLE, one_dim_ds_id, H5P_DEFAULT);
+ position_dataset_id = H5Dcreate(h5_file_id, "nodes", H5T_NATIVE_DOUBLE, dim_dataspace_id, H5P_DEFAULT);
+ velocity_dataset_id = H5Dcreate(h5_file_id, "velocity", H5T_NATIVE_DOUBLE, dim_dataspace_id, H5P_DEFAULT);
+ pid_dataset_id = H5Dcreate(h5_file_id, "id", H5T_NATIVE_DOUBLE, one_dim_ds_id, H5P_DEFAULT);
#else
- position_dataset_id = H5Dcreate(h5_file_id, "nodes", H5T_NATIVE_DOUBLE, dim_dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- velocity_dataset_id = H5Dcreate(h5_file_id, "velocity", H5T_NATIVE_DOUBLE, dim_dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- pid_dataset_id = H5Dcreate(h5_file_id, "id", H5T_NATIVE_DOUBLE, one_dim_ds_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ position_dataset_id = H5Dcreate(h5_file_id, "nodes", H5T_NATIVE_DOUBLE, dim_dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ velocity_dataset_id = H5Dcreate(h5_file_id, "velocity", H5T_NATIVE_DOUBLE, dim_dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+ pid_dataset_id = H5Dcreate(h5_file_id, "id", H5T_NATIVE_DOUBLE, one_dim_ds_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
#endif
-
- // Close the file dataspaces
- H5Sclose(dim_dataspace_id);
- H5Sclose(one_dim_ds_id);
-
- // Just in case we forget what they are
- count[0] = 1;
- file_dataspace_id = H5Screate_simple (1, count, NULL);
+
+ // Close the file dataspaces
+ H5Sclose(dim_dataspace_id);
+ H5Sclose(one_dim_ds_id);
+
+ // Just in case we forget what they are
+ count[0] = 1;
+ file_dataspace_id = H5Screate_simple (1, count, NULL);
#if H5Acreate_vers == 1
- pattr_id = H5Acreate(h5_file_id, "Ermahgerd! Pertecrs!", H5T_NATIVE_INT, file_dataspace_id, H5P_DEFAULT);
+ pattr_id = H5Acreate(h5_file_id, "Ermahgerd! Pertecrs!", H5T_NATIVE_INT, file_dataspace_id, H5P_DEFAULT);
#else
- pattr_id = H5Acreate(h5_file_id, "Ermahgerd! Pertecrs!", H5T_NATIVE_INT, file_dataspace_id, H5P_DEFAULT, H5P_DEFAULT);
+ pattr_id = H5Acreate(h5_file_id, "Ermahgerd! Pertecrs!", H5T_NATIVE_INT, file_dataspace_id, H5P_DEFAULT, H5P_DEFAULT);
#endif
- H5Aclose(pattr_id);
- H5Sclose(file_dataspace_id);
-
- // Count the number of particles on this process and get the offset among all processes
- mpi_count = particles.size();
- MPI_Scan(&mpi_count, &mpi_offset, 1, MPI_UNSIGNED, MPI_SUM, MPI_COMM_WORLD);
- count[0] = mpi_count;
- count[1] = 3;
- offset[0] = mpi_offset-mpi_count;
- offset[1] = 0;
-
- // Select the appropriate dataspace for this process
- one_dim_mem_ds_id = H5Screate_simple(1, count, NULL);
- dim_mem_ds_id = H5Screate_simple(2, count, NULL);
- pos_file_dataspace_id = H5Dget_space(position_dataset_id);
- vel_file_dataspace_id = H5Dget_space(velocity_dataset_id);
- pid_file_dataspace_id = H5Dget_space(pid_dataset_id);
-
- // And select the hyperslabs from each dataspace
- status = H5Sselect_hyperslab(pos_file_dataspace_id, H5S_SELECT_SET, offset, NULL, count, NULL);
- status = H5Sselect_hyperslab(vel_file_dataspace_id, H5S_SELECT_SET, offset, NULL, count, NULL);
- status = H5Sselect_hyperslab(pid_file_dataspace_id, H5S_SELECT_SET, offset, NULL, count, NULL);
-
- // Create property list for collective dataset write
- xfer_plist_id = H5Pcreate(H5P_DATASET_XFER);
+ H5Aclose(pattr_id);
+ H5Sclose(file_dataspace_id);
+
+ // Count the number of particles on this process and get the offset among all processes
+ mpi_count = particles.size();
+ MPI_Scan(&mpi_count, &mpi_offset, 1, MPI_UNSIGNED, MPI_SUM, MPI_COMM_WORLD);
+ count[0] = mpi_count;
+ count[1] = 3;
+ offset[0] = mpi_offset-mpi_count;
+ offset[1] = 0;
+
+ // Select the appropriate dataspace for this process
+ one_dim_mem_ds_id = H5Screate_simple(1, count, NULL);
+ dim_mem_ds_id = H5Screate_simple(2, count, NULL);
+ pos_file_dataspace_id = H5Dget_space(position_dataset_id);
+ vel_file_dataspace_id = H5Dget_space(velocity_dataset_id);
+ pid_file_dataspace_id = H5Dget_space(pid_dataset_id);
+
+ // And select the hyperslabs from each dataspace
+ status = H5Sselect_hyperslab(pos_file_dataspace_id, H5S_SELECT_SET, offset, NULL, count, NULL);
+ status = H5Sselect_hyperslab(vel_file_dataspace_id, H5S_SELECT_SET, offset, NULL, count, NULL);
+ status = H5Sselect_hyperslab(pid_file_dataspace_id, H5S_SELECT_SET, offset, NULL, count, NULL);
+
+ // Create property list for collective dataset write
+ xfer_plist_id = H5Pcreate(H5P_DATASET_XFER);
#ifdef H5_HAVE_PARALLEL
- H5Pset_dxpl_mpio(xfer_plist_id, H5FD_MPIO_COLLECTIVE);
+ H5Pset_dxpl_mpio(xfer_plist_id, H5FD_MPIO_COLLECTIVE);
#endif
-
- // Read the local particle data
- pos_data = new double[3*particles.size()];
- vel_data = new double[3*particles.size()];
- id_data = new double[particles.size()];
-
- for (i=0,it=particles.begin(); it!=particles.end(); ++i,++it)
+
+ // Read the local particle data
+ pos_data = new double[3*particles.size()];
+ vel_data = new double[3*particles.size()];
+ id_data = new double[particles.size()];
+
+ for (i=0,it=particles.begin(); it!=particles.end(); ++i,++it)
+ {
+ for (d=0; d<dim; ++d)
{
- for (d=0; d<dim; ++d)
- {
- pos_data[i*3+d] = it->second.location()(d);
- vel_data[i*3+d] = it->second.velocity()(d);
- }
- if (dim < 3)
- {
- pos_data[i*3+2] = 0;
- vel_data[i*3+2] = 0;
- }
- id_data[i] = it->second.id_num();
+ pos_data[i*3+d] = it->second.location()(d);
+ vel_data[i*3+d] = it->second.velocity()(d);
}
-
- // Write particle data to the HDF5 file
- H5Dwrite(position_dataset_id, H5T_NATIVE_DOUBLE, dim_mem_ds_id, pos_file_dataspace_id, xfer_plist_id, pos_data);
- H5Dwrite(velocity_dataset_id, H5T_NATIVE_DOUBLE, dim_mem_ds_id, vel_file_dataspace_id, xfer_plist_id, vel_data);
- H5Dwrite(pid_dataset_id, H5T_NATIVE_DOUBLE, one_dim_mem_ds_id, pid_file_dataspace_id, xfer_plist_id, id_data);
-
- // Clear allocated resources
- delete pos_data;
- delete vel_data;
- delete id_data;
- status = H5Pclose(xfer_plist_id);
- status = H5Sclose(one_dim_mem_ds_id);
- status = H5Sclose(dim_mem_ds_id);
- status = H5Sclose(pos_file_dataspace_id);
- status = H5Sclose(vel_file_dataspace_id);
- status = H5Sclose(pid_file_dataspace_id);
- status = H5Dclose(position_dataset_id);
- status = H5Dclose(velocity_dataset_id);
- status = H5Dclose(pid_dataset_id);
- status = H5Pclose(plist_id);
- status = H5Fclose(h5_file_id);
-
- // Record and output XDMF info on root process
- if (Output<dim, T>::self_rank == 0)
+ if (dim < 3)
{
- std::string local_h5_filename = output_file_prefix+".h5";
- XDMFEntry entry(local_h5_filename, current_time, global_particle_count, 0, 3);
- DataOut<dim> data_out;
- const std::string xdmf_filename = (Output<dim, T>::output_dir + "particle.xdmf");
-
- entry.add_attribute("velocity", 3);
- entry.add_attribute("id", 1);
- xdmf_entries.push_back(entry);
-
- data_out.write_xdmf_file(xdmf_entries, xdmf_filename.c_str(), MPI_COMM_WORLD);
+ pos_data[i*3+2] = 0;
+ vel_data[i*3+2] = 0;
}
+ id_data[i] = it->second.id_num();
+ }
+
+ // Write particle data to the HDF5 file
+ H5Dwrite(position_dataset_id, H5T_NATIVE_DOUBLE, dim_mem_ds_id, pos_file_dataspace_id, xfer_plist_id, pos_data);
+ H5Dwrite(velocity_dataset_id, H5T_NATIVE_DOUBLE, dim_mem_ds_id, vel_file_dataspace_id, xfer_plist_id, vel_data);
+ H5Dwrite(pid_dataset_id, H5T_NATIVE_DOUBLE, one_dim_mem_ds_id, pid_file_dataspace_id, xfer_plist_id, id_data);
+
+ // Clear allocated resources
+ delete[] pos_data;
+ delete[] vel_data;
+ delete[] id_data;
+ status = H5Pclose(xfer_plist_id);
+ status = H5Sclose(one_dim_mem_ds_id);
+ status = H5Sclose(dim_mem_ds_id);
+ status = H5Sclose(pos_file_dataspace_id);
+ status = H5Sclose(vel_file_dataspace_id);
+ status = H5Sclose(pid_file_dataspace_id);
+ status = H5Dclose(position_dataset_id);
+ status = H5Dclose(velocity_dataset_id);
+ status = H5Dclose(pid_dataset_id);
+ status = H5Pclose(plist_id);
+ status = H5Fclose(h5_file_id);
+
+ // Record and output XDMF info on root process
+ if (Output<dim, T>::self_rank == 0)
+ {
+ std::string local_h5_filename = output_file_prefix+".h5";
+ XDMFEntry entry(local_h5_filename, current_time, global_particle_count, 0, 3);
+ DataOut<dim> data_out;
+ const std::string xdmf_filename = (Output<dim, T>::output_dir + "particle.xdmf");
+
+ entry.add_attribute("velocity", 3);
+ entry.add_attribute("id", 1);
+ xdmf_entries.push_back(entry);
+
+ data_out.write_xdmf_file(xdmf_entries, xdmf_filename.c_str(), MPI_COMM_WORLD);
+ }
#endif
-
- Output<dim, T>::file_index++;
-
- return output_path_prefix;
- };
+
+ Output<dim, T>::file_index++;
+
+ return output_path_prefix;
};
- }
+ };
+ }
}
#endif
Modified: branches/active_compositions/include/aspect/particle/particle.h
===================================================================
--- branches/active_compositions/include/aspect/particle/particle.h 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/include/aspect/particle/particle.h 2012-10-18 20:18:18 UTC (rev 1286)
@@ -1,18 +1,18 @@
/*
Copyright (C) 2011, 2012 by the authors of the ASPECT code.
-
+
This file is part of ASPECT.
-
+
ASPECT is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-
+
ASPECT is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with ASPECT; see the file doc/COPYING. If not see
<http://www.gnu.org/licenses/>.
@@ -27,199 +27,289 @@
namespace aspect
{
- namespace Particle
+ namespace Particle
+ {
+ // Typedef of cell level/index pair
+ typedef std::pair<int, int> LevelInd;
+
+ class MPIDataInfo
{
- // Typedef of cell level/index pair
- typedef std::pair<int, int> LevelInd;
-
- class MPIDataInfo {
- public:
- std::string _name;
- unsigned int _num_elems;
- MPI_Datatype _data_type;
- unsigned int _elem_size_bytes;
-
- MPIDataInfo(std::string name, unsigned int num_elems, MPI_Datatype data_type, unsigned int elem_size_bytes) : _name(name), _num_elems(num_elems), _data_type(data_type), _elem_size_bytes(elem_size_bytes) {};
+ public:
+ std::string _name;
+ unsigned int _num_elems;
+ MPI_Datatype _data_type;
+ unsigned int _elem_size_bytes;
+
+ MPIDataInfo(std::string name, unsigned int num_elems, MPI_Datatype data_type, unsigned int elem_size_bytes) : _name(name), _num_elems(num_elems), _data_type(data_type), _elem_size_bytes(elem_size_bytes) {};
+ };
+
+ enum ParticleDataFormat
+ {
+ MPI_DATA,
+ HDF5_DATA
+ };
+
+ // Base class of particles - represents a particle with position, velocity, and an ID number
+ template <int dim>
+ class BaseParticle
+ {
+ private:
+ // Current particle location
+ Point<dim> _loc;
+
+ // Current particle velocity
+ Point<dim> _vel;
+
+ // Globally unique ID of particle
+ double _id;
+
+ // Whether this particle is in the local subdomain or not
+ bool _local;
+
+ // Whether to check the velocity of this particle
+ // This is used for integration schemes which require multiple
+ // integration steps for some particles, but not for others
+ bool _check_vel;
+
+ public:
+ BaseParticle(void) : _loc(), _vel(), _id(0), _local(true), _check_vel(true) {};
+
+ BaseParticle(const Point<dim> &new_loc, const double &new_id) : _loc(new_loc), _id(new_id), _local(true), _check_vel(true) {};
+
+ virtual ~BaseParticle(void) {};
+
+ static unsigned int data_len(ParticleDataFormat format)
+ {
+ switch (format)
+ {
+ case MPI_DATA:
+ case HDF5_DATA:
+ return (dim+dim+1)*sizeof(double);
+ }
+ return 0;
};
-
- enum ParticleDataFormat {
- MPI_DATA,
- HDF5_DATA
+ virtual char *read_data(ParticleDataFormat format, char *data)
+ {
+ char *p = data;
+ unsigned int i;
+
+ switch (format)
+ {
+ case MPI_DATA:
+ case HDF5_DATA:
+ // Read location data
+ for (i=0; i<dim; ++i)
+ {
+ _loc(i) = ((double *)p)[0];
+ p += sizeof(double);
+ }
+ // Write velocity data
+ for (i=0; i<dim; ++i)
+ {
+ _vel(i) = ((double *)p)[0];
+ p += sizeof(double);
+ }
+ _id = ((double *)p)[0];
+ p += sizeof(double);
+ break;
+ }
+
+ return p;
};
-
- // Base class of particles - represents a particle with position, velocity, and an ID number
- template <int dim>
- class BaseParticle
+ virtual char *write_data(ParticleDataFormat format, char *data) const
{
- private:
- // Current particle location
- Point<dim> _loc;
-
- // Current particle velocity
- Point<dim> _vel;
-
- // Globally unique ID of particle
- double _id;
-
- // Whether this particle is in the local subdomain or not
- bool _local;
-
- public:
- BaseParticle(void) : _loc(), _vel(), _id(0), _local(true) {};
-
- BaseParticle(const Point<dim> &new_loc, const double &new_id) : _loc(new_loc), _id(new_id), _local(true) {};
-
- static unsigned int data_len(ParticleDataFormat format) {
- switch (format) {
- case MPI_DATA:
- case HDF5_DATA:
- return (dim+dim+1)*sizeof(double);
- }
- return 0;
- };
- virtual char *read_data(ParticleDataFormat format, char *data) {
- char *p = data;
- unsigned int i;
-
- switch (format) {
- case MPI_DATA:
- // Read location data
- for (i=0;i<dim;++i) { _loc(i) = ((double *)p)[0]; p += sizeof(double); }
- // Write velocity data
- for (i=0;i<dim;++i) { _vel(i) = ((double *)p)[0]; p += sizeof(double); }
- _id = ((double *)p)[0]; p += sizeof(double);
- break;
- case HDF5_DATA:
- break;
- }
-
- return p;
- };
- virtual char *write_data(ParticleDataFormat format, char *data) const {
- char *p = data;
- unsigned int i;
-
- // Then write our data in the appropriate format
- switch (format) {
- case MPI_DATA:
- // Write location data
- for (i=0;i<dim;++i) { ((double *)p)[0] = _loc(i); p += sizeof(double); }
- // Write velocity data
- for (i=0;i<dim;++i) { ((double *)p)[0] = _vel(i); p += sizeof(double); }
- ((double *)p)[0] = _id; p += sizeof(double);
- break;
- case HDF5_DATA:
- break;
- }
-
- return p;
- };
-
- void set_location(Point<dim> new_loc) { _loc = new_loc; };
- Point<dim> location(void) const { return _loc; };
-
- void set_velocity(Point<dim> new_vel) { _vel = new_vel; };
- Point<dim> velocity(void) const { return _vel; };
-
- double id_num(void) const { return _id; };
-
- bool local(void) const { return _local; };
- void set_local(bool new_local) { _local = new_local; };
-
- static void add_mpi_types(std::vector<MPIDataInfo> &data_info) {
- // Add the position, velocity, ID
- data_info.push_back(MPIDataInfo("pos", dim, MPI_DOUBLE, sizeof(double)));
- data_info.push_back(MPIDataInfo("velocity", dim, MPI_DOUBLE, sizeof(double)));
- data_info.push_back(MPIDataInfo("id", 1, MPI_DOUBLE, sizeof(double)));
- };
+ char *p = data;
+ unsigned int i;
+
+ // Then write our data in the appropriate format
+ switch (format)
+ {
+ case MPI_DATA:
+ case HDF5_DATA:
+ // Write location data
+ for (i=0; i<dim; ++i)
+ {
+ ((double *)p)[0] = _loc(i);
+ p += sizeof(double);
+ }
+ // Write velocity data
+ for (i=0; i<dim; ++i)
+ {
+ ((double *)p)[0] = _vel(i);
+ p += sizeof(double);
+ }
+ ((double *)p)[0] = _id;
+ p += sizeof(double);
+ break;
+ }
+
+ return p;
};
-
- // A particle with associated values, such as scalars, vectors or tensors
- template <int dim, int data_dim>
- class DataParticle : public BaseParticle<dim> {
- private:
- double _val[data_dim];
-
- public:
- DataParticle(void) { for (unsigned int i=0;i<data_dim;++i) _val[i] = 0; };
-
- static unsigned int data_len(ParticleDataFormat format) {
- unsigned int base_size = BaseParticle<dim>::data_len(format);
-
- switch (format) {
- case MPI_DATA:
- case HDF5_DATA:
- return base_size + data_dim * sizeof(double);
- }
- return 0;
- };
- virtual char *read_data(ParticleDataFormat format, char *data) {
- char *p = data;
- unsigned int i;
-
- // Read the parent data first
- p = BaseParticle<dim>::read_data(format, data);
-
- // Then read our data in the appropriate format
- switch (format) {
- case MPI_DATA:
- for (i=0;i<data_dim;++i) { _val[i] = ((double *)p)[0]; p += sizeof(double); }
- break;
- case HDF5_DATA:
- break;
- }
-
- return p;
- };
- virtual char *write_data(ParticleDataFormat format, char *data) const {
- char *p = data;
- unsigned int i;
-
- // Write the parent data first
- p = BaseParticle<dim>::write_data(format, data);
-
- // Then write our data in the appropriate format
- switch (format) {
- case MPI_DATA:
- for (i=0;i<data_dim;++i) { ((double *)p)[0] = _val[i]; p += sizeof(double); }
- break;
- case HDF5_DATA:
- break;
- }
-
- return p;
- };
-
- // Returns a vector from the first dim components of _val
- Point<dim> get_vector(void) const {
- AssertThrow(data_dim>=dim, std::out_of_range("get_vector"));
- Point<dim> p;
- for (unsigned int i=0;i<dim;++i) p(i) = _val[i];
- };
- // Sets the first dim components of _val to the specified vector value
- void set_vector(Point<dim> new_vec) {
- AssertThrow(data_dim>=dim, std::out_of_range("set_vector"));
- for (unsigned int i=0;i<dim;++i) _val[i] = new_vec(i);
- };
-
- double &operator[](const unsigned int &ind) {
- AssertThrow(data_dim>ind, std::out_of_range("DataParticle[]"));
- return _val[ind];
- };
- const double operator[](const unsigned int &ind) const {
- AssertThrow(data_dim>ind, std::out_of_range("DataParticle[]"));
- return _val[ind];
- };
-
- static void add_mpi_types(std::vector<MPIDataInfo> &data_info) {
- // Set up the parent types first
- BaseParticle<dim>::add_mpi_types(data_info);
-
- // Then add our own
- data_info.push_back(MPIDataInfo(data_dim, MPI_DOUBLE, sizeof(double)));
- };
- };
- }
+
+ void set_location(Point<dim> new_loc)
+ {
+ _loc = new_loc;
+ };
+ Point<dim> location(void) const
+ {
+ return _loc;
+ };
+
+ void set_velocity(Point<dim> new_vel)
+ {
+ _vel = new_vel;
+ };
+ Point<dim> velocity(void) const
+ {
+ return _vel;
+ };
+
+ double id_num(void) const
+ {
+ return _id;
+ };
+
+ bool local(void) const
+ {
+ return _local;
+ };
+ void set_local(bool new_local)
+ {
+ _local = new_local;
+ };
+
+ bool vel_check(void) const
+ {
+ return _check_vel;
+ };
+ void set_vel_check(bool new_vel_check)
+ {
+ _check_vel = new_vel_check;
+ };
+
+ static void add_mpi_types(std::vector<MPIDataInfo> &data_info)
+ {
+ // Add the position, velocity, ID
+ data_info.push_back(MPIDataInfo("pos", dim, MPI_DOUBLE, sizeof(double)));
+ data_info.push_back(MPIDataInfo("velocity", dim, MPI_DOUBLE, sizeof(double)));
+ data_info.push_back(MPIDataInfo("id", 1, MPI_DOUBLE, sizeof(double)));
+ };
+ };
+
+ // A particle with associated values, such as scalars, vectors or tensors
+ template <int dim, int data_dim>
+ class DataParticle : public BaseParticle<dim>
+ {
+ private:
+ double _val[data_dim];
+
+ public:
+ DataParticle(void)
+ {
+ for (unsigned int i=0; i<data_dim; ++i) _val[i] = 0;
+ };
+
+ DataParticle(const Point<dim> &new_loc, const double &new_id) : BaseParticle<dim>(new_loc, new_id)
+ {
+ for (unsigned int i=0; i<data_dim; ++i) _val[i] = 0;
+ };
+
+ static unsigned int data_len(ParticleDataFormat format)
+ {
+ unsigned int base_size = BaseParticle<dim>::data_len(format);
+
+ switch (format)
+ {
+ case MPI_DATA:
+ case HDF5_DATA:
+ return base_size + data_dim * sizeof(double);
+ }
+ return 0;
+ };
+ virtual char *read_data(ParticleDataFormat format, char *data)
+ {
+ char *p = data;
+ unsigned int i;
+
+ // Read the parent data first
+ p = BaseParticle<dim>::read_data(format, data);
+
+ // Then read our data in the appropriate format
+ switch (format)
+ {
+ case MPI_DATA:
+ for (i=0; i<data_dim; ++i)
+ {
+ _val[i] = ((double *)p)[0];
+ p += sizeof(double);
+ }
+ break;
+ case HDF5_DATA:
+ break;
+ }
+
+ return p;
+ };
+ virtual char *write_data(ParticleDataFormat format, char *data) const
+ {
+ char *p = data;
+ unsigned int i;
+
+ // Write the parent data first
+ p = BaseParticle<dim>::write_data(format, data);
+
+ // Then write our data in the appropriate format
+ switch (format)
+ {
+ case MPI_DATA:
+ for (i=0; i<data_dim; ++i)
+ {
+ ((double *)p)[0] = _val[i];
+ p += sizeof(double);
+ }
+ break;
+ case HDF5_DATA:
+ break;
+ }
+
+ return p;
+ };
+
+ // Returns a vector from the first dim components of _val
+ Point<dim> get_vector(void) const
+ {
+ AssertThrow(data_dim>=dim, std::out_of_range("get_vector"));
+ Point<dim> p;
+ for (unsigned int i=0; i<dim; ++i) p(i) = _val[i];
+ };
+ // Sets the first dim components of _val to the specified vector value
+ void set_vector(Point<dim> new_vec)
+ {
+ AssertThrow(data_dim>=dim, std::out_of_range("set_vector"));
+ for (unsigned int i=0; i<dim; ++i) _val[i] = new_vec(i);
+ };
+
+ double &operator[](const unsigned int &ind)
+ {
+ AssertThrow(data_dim>ind, std::out_of_range("DataParticle[]"));
+ return _val[ind];
+ };
+ const double operator[](const unsigned int &ind) const
+ {
+ AssertThrow(data_dim>ind, std::out_of_range("DataParticle[]"));
+ return _val[ind];
+ };
+
+ static void add_mpi_types(std::vector<MPIDataInfo> &data_info)
+ {
+ // Set up the parent types first
+ BaseParticle<dim>::add_mpi_types(data_info);
+
+ // Then add our own
+ data_info.push_back(MPIDataInfo("data", data_dim, MPI_DOUBLE, sizeof(double)));
+ };
+ };
+ }
}
#endif
Modified: branches/active_compositions/include/aspect/particle/world.h
===================================================================
--- branches/active_compositions/include/aspect/particle/world.h 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/include/aspect/particle/world.h 2012-10-18 20:18:18 UTC (rev 1286)
@@ -1,18 +1,18 @@
/*
Copyright (C) 2011, 2012 by the authors of the ASPECT code.
-
+
This file is part of ASPECT.
-
+
ASPECT is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-
+
ASPECT is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with ASPECT; see the file doc/COPYING. If not see
<http://www.gnu.org/licenses/>.
@@ -29,574 +29,622 @@
namespace aspect
{
- namespace Particle
+ namespace Particle
+ {
+ // TODO: in the future, upgrade multimap to ParticleMap typedef
+ // with C++11 standard "using" syntax
+
+ // MPI tag for particle transfers
+ const int PARTICLE_XFER_TAG = 382;
+
+ template <int dim, class T>
+ class World
{
- // TODO: in the future, upgrade multimap to ParticleMap typedef
- // with C++11 standard "using" syntax
-
- // MPI tag for particle transfers
- const int PARTICLE_XFER_TAG = 382;
-
- template <int dim, class T>
- class World
+ private:
+ // Mapping for the simulation this particle world exists in
+ const Mapping<dim> *_mapping;
+
+ // Triangulation for the simulation this particle world exists in
+ const parallel::distributed::Triangulation<dim> *_tria;
+
+ // DoFHandler for the simulation this particle world exists in
+ const DoFHandler<dim> *_dh;
+
+ // Integration scheme for moving particles in this world
+ Integrator<dim, T> *_integrator;
+
+ // MPI communicator to be used for this world
+ MPI_Comm _communicator;
+
+ // If the triangulation was changed (e.g. through refinement), in which
+ // case we must treat all recorded particle level/index values as invalid
+ bool _triangulation_changed;
+
+ // Set of particles currently in the local domain, organized by
+ // the level/index of the cell they are in
+ std::multimap<LevelInd, T> _particles;
+
+ // Total number of particles in simulation
+ double global_sum_particles;
+
+ // MPI related variables
+ // MPI registered datatype encapsulating the MPI_Particle struct
+ MPI_Datatype _particle_type;
+
+ // Size and rank in the MPI communication world
+ int _world_size;
+ int _self_rank;
+
+ // Buffers count, offset, request data for sending and receiving particles
+ int *_num_send, *_num_recv;
+ int _total_send, _total_recv;
+ int *_send_offset, *_recv_offset;
+ MPI_Request *_send_reqs, *_recv_reqs;
+
+ // Generate a set of particles uniformly distributed within the specified triangulation.
+ // This is done using "roulette wheel" style selection weighted by cell size.
+ // We do cell-by-cell assignment of particles because the decomposition of the mesh may
+ // result in a highly non-rectangular local mesh which makes uniform particle distribution difficult.
+ void generate_particles_in_subdomain(unsigned int num_particles, unsigned int start_id)
{
- private:
- // Mapping for the simulation this particle world exists in
- const Mapping<dim> *_mapping;
-
- // Triangulation for the simulation this particle world exists in
- const parallel::distributed::Triangulation<dim> *_tria;
-
- // DoFHandler for the simulation this particle world exists in
- const DoFHandler<dim> *_dh;
-
- // Integration scheme for moving particles in this world
- Integrator<dim, T> *_integrator;
-
- // MPI communicator to be used for this world
- MPI_Comm _communicator;
-
- // If the triangulation was changed (e.g. through refinement), in which
- // case we must treat all recorded particle level/index values as invalid
- bool _triangulation_changed;
-
- // Set of particles currently in the local domain, organized by
- // the level/index of the cell they are in
- std::multimap<LevelInd, T> _particles;
-
- // Total number of particles in simulation
- double global_sum_particles;
-
- // MPI related variables
- // MPI registered datatype encapsulating the MPI_Particle struct
- MPI_Datatype _particle_type;
-
- // Size and rank in the MPI communication world
- int _world_size;
- int _self_rank;
-
- // Buffers count, offset, request data for sending and receiving particles
- int *_num_send, *_num_recv;
- int _total_send, _total_recv;
- int *_send_offset, *_recv_offset;
- MPI_Request *_send_reqs, *_recv_reqs;
-
- // Generate a set of particles uniformly distributed within the specified triangulation.
- // This is done using "roulette wheel" style selection weighted by cell size.
- // We do cell-by-cell assignment of particles because the decomposition of the mesh may
- // result in a highly non-rectangular local mesh which makes uniform particle distribution difficult.
- void generate_particles_in_subdomain(unsigned int num_particles, unsigned int start_id) {
- unsigned int i, d, v, num_tries, cur_id;
- double total_volume, roulette_spin;
- typename parallel::distributed::Triangulation<dim>::active_cell_iterator it;
- std::map<double, LevelInd> roulette_wheel;
- const unsigned int n_vertices_per_cell = GeometryInfo<dim>::vertices_per_cell;
- Point<dim> pt, max_bounds, min_bounds;
- LevelInd select_cell;
-
- // Create the roulette wheel based on volumes of local cells
- total_volume = 0;
- for (it=_tria->begin_active(); it!=_tria->end(); ++it)
+ unsigned int i, d, v, num_tries, cur_id;
+ double total_volume, roulette_spin;
+ typename parallel::distributed::Triangulation<dim>::active_cell_iterator it;
+ std::map<double, LevelInd> roulette_wheel;
+ const unsigned int n_vertices_per_cell = GeometryInfo<dim>::vertices_per_cell;
+ Point<dim> pt, max_bounds, min_bounds;
+ LevelInd select_cell;
+
+ // Create the roulette wheel based on volumes of local cells
+ total_volume = 0;
+ for (it=_tria->begin_active(); it!=_tria->end(); ++it)
+ {
+ if (it->is_locally_owned())
{
- if (it->is_locally_owned())
+ // Assign an index to each active cell for selection purposes
+ total_volume += it->measure();
+ // Save the cell index and level for later access
+ roulette_wheel.insert(std::make_pair(total_volume, std::make_pair(it->level(), it->index())));
+ }
+ }
+
+ // Pick cells and assign particles at random points inside them
+ cur_id = start_id;
+ for (i=0; i<num_particles; ++i)
+ {
+ // Select a cell based on relative volume
+ roulette_spin = total_volume*drand48();
+ select_cell = roulette_wheel.lower_bound(roulette_spin)->second;
+ it = typename parallel::distributed::Triangulation<dim>::active_cell_iterator(_tria, select_cell.first, select_cell.second);
+
+ // Get the bounds of the cell defined by the vertices
+ for (d=0; d<dim; ++d)
+ {
+ min_bounds[d] = INFINITY;
+ max_bounds[d] = -INFINITY;
+ }
+ for (v=0; v<n_vertices_per_cell; ++v)
+ {
+ pt = it->vertex(v);
+ for (d=0; d<dim; ++d)
{
- // Assign an index to each active cell for selection purposes
- total_volume += it->measure();
- // Save the cell index and level for later access
- roulette_wheel.insert(std::make_pair(total_volume, std::make_pair(it->level(), it->index())));
+ min_bounds[d] = fmin(pt[d], min_bounds[d]);
+ max_bounds[d] = fmax(pt[d], max_bounds[d]);
}
}
-
- // Pick cells and assign particles at random points inside them
- cur_id = start_id;
- for (i=0; i<num_particles; ++i)
+
+ // Generate random points in these bounds until one is within the cell
+ num_tries = 0;
+ while (num_tries < 100)
{
- // Select a cell based on relative volume
- roulette_spin = total_volume*drand48();
- select_cell = roulette_wheel.lower_bound(roulette_spin)->second;
- it = typename parallel::distributed::Triangulation<dim>::active_cell_iterator(_tria, select_cell.first, select_cell.second);
-
- // Get the bounds of the cell defined by the vertices
- for (d=0; d<dim; ++d)
+ for (d=0; d<dim; ++d)
{
- min_bounds[d] = INFINITY;
- max_bounds[d] = -INFINITY;
+ pt[d] = drand48()*(max_bounds[d]-min_bounds[d]) + min_bounds[d];
}
- for (v=0; v<n_vertices_per_cell; ++v)
+ try
{
- pt = it->vertex(v);
- for (d=0; d<dim; ++d)
- {
- min_bounds[d] = fmin(pt[d], min_bounds[d]);
- max_bounds[d] = fmax(pt[d], max_bounds[d]);
- }
+ if (it->point_inside(pt)) break;
}
-
- // Generate random points in these bounds until one is within the cell
- num_tries = 0;
- while (num_tries < 100)
+ catch (...)
{
- for (d=0; d<dim; ++d)
- {
- pt[d] = drand48()*(max_bounds[d]-min_bounds[d]) + min_bounds[d];
- }
- try
- {
- if (it->point_inside(pt)) break;
- }
- catch (...)
- {
- // Debugging output, remove when Q4 mapping 3D sphere problem is resolved
- //std::cerr << "ooo eee ooo aaa aaa " << pt << " " << select_cell.first << " " << select_cell.second << std::endl;
- //for (int z=0;z<8;++z) std::cerr << "V" << z <<": " << it->vertex(z) << ", ";
- //std::cerr << std::endl;
- MPI_Abort(_communicator, 1);
- }
- num_tries++;
+ // Debugging output, remove when Q4 mapping 3D sphere problem is resolved
+ //std::cerr << "ooo eee ooo aaa aaa " << pt << " " << select_cell.first << " " << select_cell.second << std::endl;
+ //for (int z=0;z<8;++z) std::cerr << "V" << z <<": " << it->vertex(z) << ", ";
+ //std::cerr << std::endl;
+ MPI_Abort(_communicator, 1);
}
- AssertThrow (num_tries < 100, ExcMessage ("Couldn't generate particle (unusual cell shape?)."));
-
- // Add the generated particle to the set
- T new_particle(pt, cur_id);
- _particles.insert(std::make_pair(select_cell, new_particle));
-
- cur_id++;
+ num_tries++;
}
- };
-
- // Recursively determines which cell the given particle belongs to
- // Returns true if the particle is in the specified cell and sets the particle
- // cell information appropriately, false otherwise
- LevelInd recursive_find_cell(T &particle, LevelInd cur_cell) {
- typename parallel::distributed::Triangulation<dim>::cell_iterator it, found_cell, child_cell;
- unsigned int child_num;
- LevelInd res, child_li;
-
- // If the particle is in the specified cell
- found_cell = typename parallel::distributed::Triangulation<dim>::cell_iterator(_tria, cur_cell.first, cur_cell.second);
- if (found_cell != _tria->end() && found_cell->point_inside(particle.location()))
- {
- // If the cell is active, we're at the finest level of refinement and can finish
- if (found_cell->active())
- {
- particle.set_local(found_cell->is_locally_owned());
- return cur_cell;
- }
- else
- {
- // Otherwise we need to search deeper
- for (child_num=0; child_num<found_cell->n_children(); ++child_num)
- {
- child_cell = found_cell->child(child_num);
- child_li = LevelInd(child_cell->level(), child_cell->index());
- res = recursive_find_cell(particle, child_li);
- if (res.first != -1 && res.second != -1) return res;
- }
- }
- }
-
- // If we still can't find it, return false
- return LevelInd(-1, -1);
- };
-
- void mesh_changed(void)
+ AssertThrow (num_tries < 100, ExcMessage ("Couldn't generate particle (unusual cell shape?)."));
+
+ // Add the generated particle to the set
+ T new_particle(pt, cur_id);
+ _particles.insert(std::make_pair(select_cell, new_particle));
+
+ cur_id++;
+ }
+ };
+
+ // Recursively determines which cell the given particle belongs to
+ // Returns true if the particle is in the specified cell and sets the particle
+ // cell information appropriately, false otherwise
+ LevelInd recursive_find_cell(T &particle, LevelInd cur_cell)
+ {
+ typename parallel::distributed::Triangulation<dim>::cell_iterator it, found_cell, child_cell;
+ unsigned int child_num;
+ LevelInd res, child_li;
+
+ // If the particle is in the specified cell
+ found_cell = typename parallel::distributed::Triangulation<dim>::cell_iterator(_tria, cur_cell.first, cur_cell.second);
+ if (found_cell != _tria->end() && found_cell->point_inside(particle.location()))
{
- _triangulation_changed = true;
- };
-
- public:
- World(void) {
- _triangulation_changed = true;
- _total_send = _total_recv = 0;
- _world_size = _self_rank = 0;
- _num_send = _num_recv = _send_offset = _recv_offset = NULL;
- _send_reqs = _recv_reqs = NULL;
- _tria = NULL;
- _mapping = NULL;
- _dh = NULL;
- _integrator = NULL;
- //MPI_Comm _communicator;
- };
- ~World(void) {
- if (_world_size) MPI_Type_free(&_particle_type);
-
- if (_num_send) delete _num_send;
- if (_num_recv) delete _num_recv;
- if (_send_offset) delete _send_offset;
- if (_recv_offset) delete _recv_offset;
- if (_send_reqs) delete _send_reqs;
- if (_recv_reqs) delete _recv_reqs;
- };
-
- void set_mapping(const Mapping<dim> *new_mapping) { _mapping = new_mapping; };
- void set_triangulation(const parallel::distributed::Triangulation<dim> *new_tria) {
- //if (_tria) _tria.signals.post_refinement.disconnect(std_cxx1x::bind(&World::mesh_changed, std_cxx1x::ref(*this)));
- _tria = new_tria;
- _tria->signals.post_refinement.connect(std_cxx1x::bind(&World::mesh_changed, std_cxx1x::ref(*this)));
- };
- void set_dof_handler(const DoFHandler<dim> *new_dh) { _dh = new_dh; };
- void set_integrator(Integrator<dim, T> *new_integrator) { _integrator = new_integrator; };
- void set_mpi_comm(MPI_Comm new_comm_world) { _communicator = new_comm_world; };
- const std::multimap<LevelInd, T> particles(void) const { return _particles; };
-
- // TODO: add better error checking to MPI calls
- void init(void) {
- int *block_lens;
- MPI_Aint *indices;
- MPI_Datatype *old_types;
- std::vector<MPIDataInfo> data_info;
- std::vector<MPIDataInfo>::iterator it;
- int num_entries, res, i;
-
- // Assert that all necessary parameters have been set
-
- // Construct MPI data type for this particle
- T::add_mpi_types(data_info);
-
- // And data associated with the integration scheme
- _integrator->add_mpi_types(data_info);
-
- // Set up the block lengths, indices and internal types
- num_entries = data_info.size();
- block_lens = new int[num_entries];
- indices = new MPI_Aint[num_entries];
- old_types = new MPI_Datatype[num_entries];
- for (i=0;i<num_entries;++i) {
- block_lens[i] = data_info[i]._num_elems;
- indices[i] = (i == 0 ? 0 : indices[i-1]+data_info[i-1]._elem_size_bytes*data_info[i-1]._num_elems);
- old_types[i] = data_info[i]._data_type;
- }
-
- // Create and commit the MPI type
- res = MPI_Type_struct(num_entries, block_lens, indices, old_types, &_particle_type);
- if (res != MPI_SUCCESS) exit(-1);
-
- res = MPI_Type_commit(&_particle_type);
- if (res != MPI_SUCCESS) exit(-1);
-
- // Delete temporary arrays
- delete old_types;
- delete indices;
- delete block_lens;
-
- // Determine the size of the MPI comm world
- MPI_Comm_size(_communicator, &_world_size);
- MPI_Comm_rank(_communicator, &_self_rank);
-
- // Initialize send/recv structures appropriately
- _num_send = new int[_world_size];
- _num_recv = new int[_world_size];
- _send_offset = new int[_world_size];
- _recv_offset = new int[_world_size];
- _send_reqs = new MPI_Request[_world_size];
- _recv_reqs = new MPI_Request[_world_size];
- };
-
- // TODO: determine file format, write this function
- void read_particles_from_file(std::string filename);
-
- // Generate a set of particles in the current triangulation
- // TODO: fix the numbering scheme so we have exactly the right number of particles for all processor configurations
- // TODO: fix the particle system so it works even with processors assigned 0 cells
- void global_add_particles(double total_particles) {
- double total_volume, local_volume, subdomain_fraction, start_fraction, end_fraction;
- typename parallel::distributed::Triangulation<dim>::active_cell_iterator it;
-
- global_sum_particles = total_particles;
- // Calculate the number of particles in this domain as a fraction of total volume
- total_volume = local_volume = 0;
- for (it=_tria->begin_active(); it!=_tria->end(); ++it)
+ // If the cell is active, we're at the finest level of refinement and can finish
+ if (found_cell->active())
{
- double cell_volume = it->measure();
- AssertThrow (cell_volume != 0, ExcMessage ("Found cell with zero volume."));
- if (it->is_locally_owned()) local_volume += cell_volume;
+ particle.set_local(found_cell->is_locally_owned());
+ return cur_cell;
}
-
- // Sum the local volumes over all nodes
- MPI_Allreduce(&local_volume, &total_volume, 1, MPI_DOUBLE, MPI_SUM, _communicator);
-
- // Assign this subdomain the appropriate fraction
- subdomain_fraction = local_volume/total_volume;
-
- // Sum the subdomain fractions so we don't miss particles from rounding and to create unique IDs
- MPI_Scan(&subdomain_fraction, &end_fraction, 1, MPI_DOUBLE, MPI_SUM, _communicator);
- start_fraction = end_fraction-subdomain_fraction;
-
- // Calculate start and end IDs so there are no gaps
- const unsigned int start_id = static_cast<unsigned int>(std::floor(start_fraction*total_particles));
- const unsigned int end_id = static_cast<unsigned int>(std::floor(end_fraction*total_particles));
- const unsigned int subdomain_particles = end_id - start_id;
-
- generate_particles_in_subdomain(subdomain_particles, start_id);
- };
- std::string output_particle_data(const std::string &output_dir);
- void find_all_cells(void) {
- typename std::multimap<LevelInd, T>::iterator it;
- std::multimap<LevelInd, T> tmp_map;
- LevelInd found_cell;
-
- // Find the cells that the particles moved to
- tmp_map.clear();
- for (it=_particles.begin(); it!=_particles.end();)
+ else
{
- found_cell = find_cell(it->second, it->first);
- if (found_cell != it->first)
+ // Otherwise we need to search deeper
+ for (child_num=0; child_num<found_cell->n_children(); ++child_num)
{
- tmp_map.insert(std::make_pair(found_cell, it->second));
- _particles.erase(it++);
+ child_cell = found_cell->child(child_num);
+ child_li = LevelInd(child_cell->level(), child_cell->index());
+ res = recursive_find_cell(particle, child_li);
+ if (res.first != -1 && res.second != -1) return res;
}
- else ++it;
}
- _particles.insert(tmp_map.begin(),tmp_map.end());
- };
-
- // Advance particles by the specified timestep using the current integration scheme.
- void advance_timestep(double timestep, const TrilinosWrappers::MPI::BlockVector &solution) {
- bool continue_integrator = true;
-
- // Find the cells that the particles moved to
- find_all_cells();
-
- // If the triangulation changed, we may need to move particles between processors
- if (_triangulation_changed) send_recv_particles();
-
- // If particles fell out of the mesh, put them back in at the closest point in the mesh
- move_particles_back_in_mesh();
-
- // Keep calling the integrator until it indicates it is finished
- while (continue_integrator) {
- // Starting out, particles must know which cells they belong to
- // Using this we can quickly interpolate the velocities
- get_particle_velocities(solution);
-
- // Call the integrator
- continue_integrator = _integrator->integrate_step(_particles, timestep);
-
- // Find the cells that the particles moved to
- find_all_cells();
-
- // If particles fell out of the mesh, put them back in at the closest point in the mesh
- move_particles_back_in_mesh();
-
- // Swap particles between processors if needed
- send_recv_particles();
- }
-
- // Ensure we didn't lose any particles
- check_particle_count();
- };
-
- void move_particles_back_in_mesh(void) {
- // TODO: fix this to work with arbitrary meshes
- };
-
- // Finds the cell the particle is contained in and returns the corresponding level/index
- LevelInd find_cell(T &particle, LevelInd cur_cell) {
- typename parallel::distributed::Triangulation<dim>::cell_iterator it, found_cell;
- typename parallel::distributed::Triangulation<dim>::active_cell_iterator ait;
- LevelInd res;
-
- // First check the last recorded cell since particles will generally stay in the same area
- if (!_triangulation_changed)
+ }
+
+ // If we still can't find it, return false
+ return LevelInd(-1, -1);
+ };
+
+ void mesh_changed(void)
+ {
+ _triangulation_changed = true;
+ };
+
+ public:
+ World(void)
+ {
+ _triangulation_changed = true;
+ _total_send = _total_recv = 0;
+ _world_size = _self_rank = 0;
+ _num_send = _num_recv = _send_offset = _recv_offset = NULL;
+ _send_reqs = _recv_reqs = NULL;
+ _tria = NULL;
+ _mapping = NULL;
+ _dh = NULL;
+ _integrator = NULL;
+ //MPI_Comm _communicator;
+ };
+ ~World(void)
+ {
+ if (_world_size) MPI_Type_free(&_particle_type);
+
+ if (_num_send) delete _num_send;
+ if (_num_recv) delete _num_recv;
+ if (_send_offset) delete _send_offset;
+ if (_recv_offset) delete _recv_offset;
+ if (_send_reqs) delete _send_reqs;
+ if (_recv_reqs) delete _recv_reqs;
+ };
+
+ void set_mapping(const Mapping<dim> *new_mapping)
+ {
+ _mapping = new_mapping;
+ };
+ void set_triangulation(const parallel::distributed::Triangulation<dim> *new_tria)
+ {
+ //if (_tria) _tria.signals.post_refinement.disconnect(std_cxx1x::bind(&World::mesh_changed, std_cxx1x::ref(*this)));
+ _tria = new_tria;
+ _tria->signals.post_refinement.connect(std_cxx1x::bind(&World::mesh_changed, std_cxx1x::ref(*this)));
+ };
+ void set_dof_handler(const DoFHandler<dim> *new_dh)
+ {
+ _dh = new_dh;
+ };
+ void set_integrator(Integrator<dim, T> *new_integrator)
+ {
+ _integrator = new_integrator;
+ };
+ void set_mpi_comm(MPI_Comm new_comm_world)
+ {
+ _communicator = new_comm_world;
+ };
+ const std::multimap<LevelInd, T> particles(void) const
+ {
+ return _particles;
+ };
+
+ // TODO: add better error checking to MPI calls
+ void init(void)
+ {
+ int *block_lens;
+ MPI_Aint *indices;
+ MPI_Datatype *old_types;
+ std::vector<MPIDataInfo> data_info;
+ std::vector<MPIDataInfo>::iterator it;
+ int num_entries, res, i;
+
+ // TODO: Assert that all necessary parameters have been set
+
+ // Construct MPI data type for this particle
+ T::add_mpi_types(data_info);
+
+ // And data associated with the integration scheme
+ _integrator->add_mpi_types(data_info);
+
+ // Set up the block lengths, indices and internal types
+ num_entries = data_info.size();
+ block_lens = new int[num_entries];
+ indices = new MPI_Aint[num_entries];
+ old_types = new MPI_Datatype[num_entries];
+ for (i=0; i<num_entries; ++i)
+ {
+ block_lens[i] = data_info[i]._num_elems;
+ indices[i] = (i == 0 ? 0 : indices[i-1]+data_info[i-1]._elem_size_bytes*data_info[i-1]._num_elems);
+ old_types[i] = data_info[i]._data_type;
+ }
+
+ // Create and commit the MPI type
+ res = MPI_Type_struct(num_entries, block_lens, indices, old_types, &_particle_type);
+ if (res != MPI_SUCCESS) exit(-1);
+
+ res = MPI_Type_commit(&_particle_type);
+ if (res != MPI_SUCCESS) exit(-1);
+
+ // Delete temporary arrays
+ delete old_types;
+ delete indices;
+ delete block_lens;
+
+ // Determine the size of the MPI comm world
+ MPI_Comm_size(_communicator, &_world_size);
+ MPI_Comm_rank(_communicator, &_self_rank);
+
+ // Initialize send/recv structures appropriately
+ _num_send = new int[_world_size];
+ _num_recv = new int[_world_size];
+ _send_offset = new int[_world_size];
+ _recv_offset = new int[_world_size];
+ _send_reqs = new MPI_Request[_world_size];
+ _recv_reqs = new MPI_Request[_world_size];
+ };
+
+ // TODO: determine file format, write this function
+ void read_particles_from_file(std::string filename);
+
+ // Generate a set of particles in the current triangulation
+ // TODO: fix the numbering scheme so we have exactly the right number of particles for all processor configurations
+ // TODO: fix the particle system so it works even with processors assigned 0 cells
+ void global_add_particles(double total_particles)
+ {
+ double total_volume, local_volume, subdomain_fraction, start_fraction, end_fraction;
+ typename parallel::distributed::Triangulation<dim>::active_cell_iterator it;
+
+ global_sum_particles = total_particles;
+ // Calculate the number of particles in this domain as a fraction of total volume
+ total_volume = local_volume = 0;
+ for (it=_tria->begin_active(); it!=_tria->end(); ++it)
+ {
+ double cell_volume = it->measure();
+ AssertThrow (cell_volume != 0, ExcMessage ("Found cell with zero volume."));
+ if (it->is_locally_owned()) local_volume += cell_volume;
+ }
+
+ // Sum the local volumes over all nodes
+ MPI_Allreduce(&local_volume, &total_volume, 1, MPI_DOUBLE, MPI_SUM, _communicator);
+
+ // Assign this subdomain the appropriate fraction
+ subdomain_fraction = local_volume/total_volume;
+
+ // Sum the subdomain fractions so we don't miss particles from rounding and to create unique IDs
+ MPI_Scan(&subdomain_fraction, &end_fraction, 1, MPI_DOUBLE, MPI_SUM, _communicator);
+ start_fraction = end_fraction-subdomain_fraction;
+
+ // Calculate start and end IDs so there are no gaps
+ const unsigned int start_id = static_cast<unsigned int>(std::floor(start_fraction*total_particles));
+ const unsigned int end_id = static_cast<unsigned int>(std::floor(end_fraction*total_particles));
+ const unsigned int subdomain_particles = end_id - start_id;
+
+ generate_particles_in_subdomain(subdomain_particles, start_id);
+ };
+ std::string output_particle_data(const std::string &output_dir);
+ void find_all_cells(void)
+ {
+ typename std::multimap<LevelInd, T>::iterator it;
+ std::multimap<LevelInd, T> tmp_map;
+ LevelInd found_cell;
+
+ // Find the cells that the particles moved to
+ tmp_map.clear();
+ for (it=_particles.begin(); it!=_particles.end();)
+ {
+ found_cell = find_cell(it->second, it->first);
+ if (found_cell != it->first)
{
- found_cell = typename parallel::distributed::Triangulation<dim>::cell_iterator(_tria, cur_cell.first, cur_cell.second);
- if (found_cell != _tria->end() && found_cell->point_inside(particle.location()) && found_cell->active())
- {
- // If the cell is active, we're at the finest level of refinement and can finish
- particle.set_local(found_cell->is_locally_owned());
- return cur_cell;
- }
+ tmp_map.insert(std::make_pair(found_cell, it->second));
+ _particles.erase(it++);
}
-
- // Check all the cells on level 0 and recurse down
- for (it=_tria->begin(0); it!=_tria->end(0); ++it)
+ else ++it;
+ }
+ _particles.insert(tmp_map.begin(),tmp_map.end());
+ };
+
+ // Advance particles by the specified timestep using the current integration scheme.
+ void advance_timestep(double timestep, const TrilinosWrappers::MPI::BlockVector &solution)
+ {
+ bool continue_integrator = true;
+
+ // Find the cells that the particles moved to
+ find_all_cells();
+
+ // If the triangulation changed, we may need to move particles between processors
+ if (_triangulation_changed) send_recv_particles();
+
+ // If particles fell out of the mesh, put them back in at the closest point in the mesh
+ move_particles_back_in_mesh();
+
+ // Mark all particles to be checked for velocity based on position
+ mark_particles_for_check();
+
+ // Keep calling the integrator until it indicates it is finished
+ while (continue_integrator)
+ {
+ // Starting out, particles must know which cells they belong to
+ // Using this we can quickly interpolate the velocities
+ get_particle_velocities(solution);
+
+ // Call the integrator
+ continue_integrator = _integrator->integrate_step(_particles, timestep);
+
+ // Find the cells that the particles moved to
+ find_all_cells();
+
+ // If particles fell out of the mesh, put them back in at the closest point in the mesh
+ move_particles_back_in_mesh();
+
+ // Swap particles between processors if needed
+ send_recv_particles();
+ }
+
+ // Ensure we didn't lose any particles
+ check_particle_count();
+ };
+
+ void move_particles_back_in_mesh(void)
+ {
+ // TODO: fix this to work with arbitrary meshes
+ };
+
+ // Mark all particles to be checked for velocity
+ void mark_particles_for_check(void)
+ {
+ typename std::multimap<LevelInd, T>::iterator it;
+ for (it=_particles.begin(); it!=_particles.end(); ++it) it->second.set_vel_check(true);
+ }
+
+ // Finds the cell the particle is contained in and returns the corresponding level/index
+ LevelInd find_cell(T &particle, LevelInd cur_cell)
+ {
+ typename parallel::distributed::Triangulation<dim>::cell_iterator it, found_cell;
+ typename parallel::distributed::Triangulation<dim>::active_cell_iterator ait;
+ LevelInd res;
+
+ // First check the last recorded cell since particles will generally stay in the same area
+ if (!_triangulation_changed)
+ {
+ found_cell = typename parallel::distributed::Triangulation<dim>::cell_iterator(_tria, cur_cell.first, cur_cell.second);
+ if (found_cell != _tria->end() && found_cell->point_inside(particle.location()) && found_cell->active())
{
- res = recursive_find_cell(particle, std::make_pair(it->level(), it->index()));
- if (res.first != -1 && res.second != -1) return res;
+ // If the cell is active, we're at the finest level of refinement and can finish
+ particle.set_local(found_cell->is_locally_owned());
+ return cur_cell;
}
-
- // If we couldn't find it there, we need to check the active cells
- // since the particle could be on a curved boundary not included in the
- // coarse grid
- for (ait=_tria->begin_active(); ait!=_tria->end(); ++ait)
+ }
+
+ // Check all the cells on level 0 and recurse down
+ for (it=_tria->begin(0); it!=_tria->end(0); ++it)
+ {
+ res = recursive_find_cell(particle, std::make_pair(it->level(), it->index()));
+ if (res.first != -1 && res.second != -1) return res;
+ }
+
+ // If we couldn't find it there, we need to check the active cells
+ // since the particle could be on a curved boundary not included in the
+ // coarse grid
+ for (ait=_tria->begin_active(); ait!=_tria->end(); ++ait)
+ {
+ if (ait->point_inside(particle.location()))
{
- if (ait->point_inside(particle.location()))
- {
- particle.set_local(ait->is_locally_owned());
- return std::make_pair(ait->level(), ait->index());
- }
+ particle.set_local(ait->is_locally_owned());
+ return std::make_pair(ait->level(), ait->index());
}
-
- // If it failed all these tests, the particle is outside the mesh
- particle.set_local(false);
- return std::make_pair(-1, -1);
- };
-
- /*
- Transfer particles that have crossed domain boundaries to other processors
- Because domains can change drastically during mesh refinement, particle transfer occurs as follows:
- - Each domain finds particles that have fallen outside it
- - If the new particle position is in a known domain (e.g. artificial cells), send the particle only to that domain
- - If the new particle position is not in a known domain (e.g. due to mesh refinement), send the particle to all domains
- - The position of each of these particles is broadcast to the specified domains
- - Each domain determines which of the broadcast particles is in itself, keeps these and deletes the others
- - TODO: handle particles outside any domain
- - TODO: if we know the domain of a particle (e.g. bordering domains), send it only to that domain
- */
- void send_recv_particles(void) {
- typename std::multimap<LevelInd, T>::iterator it;
- typename parallel::distributed::Triangulation<dim>::cell_iterator found_cell;
- int i, rank;
- std::vector<T> send_particles;
- typename std::vector<T>::const_iterator sit;
- char *send_data, *recv_data, *cur_send_ptr, *cur_recv_ptr;
- unsigned int integrator_data_len, particle_data_len;
-
- // Go through the particles and take out those which need to be moved to another processor
- for (it=_particles.begin(); it!=_particles.end();)
+ }
+
+ // If it failed all these tests, the particle is outside the mesh
+ particle.set_local(false);
+ return std::make_pair(-1, -1);
+ };
+
+ /*
+ Transfer particles that have crossed domain boundaries to other processors
+ Because domains can change drastically during mesh refinement, particle transfer occurs as follows:
+ - Each domain finds particles that have fallen outside it
+ - If the new particle position is in a known domain (e.g. artificial cells), send the particle only to that domain
+ - If the new particle position is not in a known domain (e.g. due to mesh refinement), send the particle to all domains
+ - The position of each of these particles is broadcast to the specified domains
+ - Each domain determines which of the broadcast particles is in itself, keeps these and deletes the others
+ - TODO: handle particles outside any domain
+ - TODO: if we know the domain of a particle (e.g. bordering domains), send it only to that domain
+ */
+ void send_recv_particles(void)
+ {
+ typename std::multimap<LevelInd, T>::iterator it;
+ typename parallel::distributed::Triangulation<dim>::cell_iterator found_cell;
+ int i, rank;
+ std::vector<T> send_particles;
+ typename std::vector<T>::const_iterator sit;
+ char *send_data, *recv_data, *cur_send_ptr, *cur_recv_ptr;
+ unsigned int integrator_data_len, particle_data_len;
+
+ // Go through the particles and take out those which need to be moved to another processor
+ for (it=_particles.begin(); it!=_particles.end();)
+ {
+ if (!it->second.local())
{
- if (!it->second.local())
- {
- send_particles.push_back(it->second);
- _particles.erase(it++);
- }
- else
- {
- ++it;
- }
+ send_particles.push_back(it->second);
+ _particles.erase(it++);
}
-
- // Determine the total number of particles we will send to other processors
- _total_send = send_particles.size();
- for (rank=0; rank<_world_size; ++rank)
+ else
{
- if (rank != _self_rank) _num_send[rank] = _total_send;
- else _num_send[rank] = 0;
- _send_offset[rank] = 0;
+ ++it;
}
-
- // Notify other processors how many particles we will be sending
- MPI_Alltoall(_num_send, 1, MPI_INT, _num_recv, 1, MPI_INT, _communicator);
-
- _total_recv = 0;
- for (rank=0; rank<_world_size; ++rank)
+ }
+
+ // Determine the total number of particles we will send to other processors
+ _total_send = send_particles.size();
+ for (rank=0; rank<_world_size; ++rank)
+ {
+ if (rank != _self_rank) _num_send[rank] = _total_send;
+ else _num_send[rank] = 0;
+ _send_offset[rank] = 0;
+ }
+
+ // Notify other processors how many particles we will be sending
+ MPI_Alltoall(_num_send, 1, MPI_INT, _num_recv, 1, MPI_INT, _communicator);
+
+ _total_recv = 0;
+ for (rank=0; rank<_world_size; ++rank)
+ {
+ _recv_offset[rank] = _total_recv;
+ _total_recv += _num_recv[rank];
+ }
+
+ // Allocate space for sending and receiving particle data
+ integrator_data_len = _integrator->data_len(MPI_DATA);
+ particle_data_len = T::data_len(MPI_DATA);
+ send_data = (char *)malloc(_total_send*(integrator_data_len+particle_data_len));
+ recv_data = (char *)malloc(_total_recv*(integrator_data_len+particle_data_len));
+
+ // Copy the particle data into the send array
+ // TODO: add integrator data
+ cur_send_ptr = send_data;
+ for (i=0,sit=send_particles.begin(); sit!=send_particles.end(); ++sit,++i)
+ {
+ cur_send_ptr = sit->write_data(MPI_DATA, cur_send_ptr);
+ cur_send_ptr = _integrator->write_data(MPI_DATA, sit->id_num(), cur_send_ptr);
+ }
+
+ // Exchange the particle data between domains
+ MPI_Alltoallv(send_data, _num_send, _send_offset, _particle_type,
+ recv_data, _num_recv, _recv_offset, _particle_type,
+ _communicator);
+
+ int put_in_domain = 0;
+ // Put the received particles into the domain if they are in the triangulation
+ cur_recv_ptr = recv_data;
+ for (i=0; i<_total_recv; ++i)
+ {
+ T recv_particle;
+ LevelInd found_cell;
+ cur_recv_ptr = recv_particle.read_data(MPI_DATA, cur_recv_ptr);
+ cur_recv_ptr = _integrator->read_data(MPI_DATA, recv_particle.id_num(), cur_recv_ptr);
+ found_cell = find_cell(recv_particle, std::make_pair(-1,-1));
+ if (recv_particle.local())
{
- _recv_offset[rank] = _total_recv;
- _total_recv += _num_recv[rank];
+ put_in_domain++;
+ _particles.insert(std::make_pair(found_cell, recv_particle));
}
-
- // Allocate space for sending and receiving particle data
- integrator_data_len = _integrator->data_len(MPI_DATA);
- particle_data_len = T::data_len(MPI_DATA);
- send_data = (char *)malloc(_total_send*(integrator_data_len+particle_data_len));
- recv_data = (char *)malloc(_total_recv*(integrator_data_len+particle_data_len));
-
- // Copy the particle data into the send array
- // TODO: add integrator data
- cur_send_ptr = send_data;
- for (i=0,sit=send_particles.begin(); sit!=send_particles.end(); ++sit,++i)
+ }
+
+ free(send_data);
+ free(recv_data);
+ };
+
+ void get_particle_velocities(const TrilinosWrappers::MPI::BlockVector &solution)
+ {
+ Vector<double> single_res(dim+2);
+ std::vector<Vector<double> > result;
+ Point<dim> velocity;
+ unsigned int i, num_cell_particles;
+ LevelInd cur_cell;
+ typename std::multimap<LevelInd, T>::iterator it, sit;
+ typename DoFHandler<dim>::active_cell_iterator found_cell;
+ std::vector<Point<dim> > particle_points;
+
+ // Prepare the field function
+ Functions::FEFieldFunction<dim, DoFHandler<dim>, TrilinosWrappers::MPI::BlockVector> fe_value(*_dh, solution, *_mapping);
+
+ // Get the velocity for each cell at a time so we can take advantage of knowing the active cell
+ for (it=_particles.begin(); it!=_particles.end();)
+ {
+ // Save a pointer to the first particle in this cell
+ sit = it;
+
+ // Get the current cell
+ cur_cell = it->first;
+
+ // Resize the vectors to the number of particles in this cell
+ num_cell_particles = _particles.count(cur_cell);
+ particle_points.resize(num_cell_particles);
+
+ // Get a vector of the particle locations in this cell
+ i=0;
+ while (it != _particles.end() && it->first == cur_cell)
{
- cur_send_ptr = sit->write_data(MPI_DATA, cur_send_ptr);
- cur_send_ptr = _integrator->write_data(MPI_DATA, sit->id_num(), cur_send_ptr);
+ if (it->second.vel_check()) particle_points[i++] = it->second.location();
+ it++;
}
-
- // Exchange the particle data between domains
- MPI_Alltoallv(send_data, _num_send, _send_offset, _particle_type,
- recv_data, _num_recv, _recv_offset, _particle_type,
- _communicator);
-
- int put_in_domain = 0;
- // Put the received particles into the domain if they are in the triangulation
- cur_recv_ptr = recv_data;
- for (i=0; i<_total_recv; ++i)
+ result.resize(i, single_res);
+ particle_points.resize(i);
+
+ // Get the cell the particle is in
+ found_cell = typename DoFHandler<dim>::active_cell_iterator(_tria, cur_cell.first, cur_cell.second, _dh);
+
+ // Interpolate the velocity field for each of the particles
+ fe_value.set_active_cell(found_cell);
+ fe_value.vector_value_list(particle_points, result);
+
+ // Copy the resulting velocities to the appropriate vector
+ it = sit;
+ i = 0;
+ while (it != _particles.end() && it->first == cur_cell)
{
- T recv_particle;
- LevelInd found_cell;
- cur_recv_ptr = recv_particle.read_data(MPI_DATA, cur_recv_ptr);
- cur_recv_ptr = _integrator->read_data(MPI_DATA, recv_particle.id_num(), cur_recv_ptr);
- found_cell = find_cell(recv_particle, std::make_pair(-1,-1));
- if (recv_particle.local())
+ if (it->second.vel_check())
{
- put_in_domain++;
- _particles.insert(std::make_pair(found_cell, recv_particle));
+ for (int d=0; d<dim; ++d) velocity(d) = result[i](d);
+ it->second.set_velocity(velocity);
+ i++;
}
+ it++;
}
-
- free(send_data);
- free(recv_data);
- };
-
- void get_particle_velocities(const TrilinosWrappers::MPI::BlockVector &solution) {
- Vector<double> single_res(dim+2);
- std::vector<Vector<double> > result;
- Point<dim> velocity;
- unsigned int i, num_cell_particles;
- LevelInd cur_cell;
- typename std::multimap<LevelInd, T>::iterator it, sit;
- typename DoFHandler<dim>::active_cell_iterator found_cell;
- std::vector<Point<dim> > particle_points;
-
- // Prepare the field function
- Functions::FEFieldFunction<dim, DoFHandler<dim>, TrilinosWrappers::MPI::BlockVector> fe_value(*_dh, solution, *_mapping);
-
- // Get the velocity for each cell at a time so we can take advantage of knowing the active cell
- for (it=_particles.begin(); it!=_particles.end();)
- {
- // Save a pointer to the first particle in this cell
- sit = it;
-
- // Get the current cell
- cur_cell = it->first;
-
- // Resize the vectors to the number of particles in this cell
- num_cell_particles = _particles.count(cur_cell);
- particle_points.resize(num_cell_particles);
- result.resize(num_cell_particles, single_res);
-
- // Get a vector of the point positions in this cell
- i=0;
- while (it != _particles.end() && it->first == cur_cell)
- {
- particle_points[i++] = it->second.location();
- it++;
- }
-
- // Get the cell the particle is in
- found_cell = typename DoFHandler<dim>::active_cell_iterator(_tria, cur_cell.first, cur_cell.second, _dh);
-
- // Interpolate the velocity field for each of the particles
- fe_value.set_active_cell(found_cell);
- fe_value.vector_value_list(particle_points, result);
-
- // Copy the resulting velocities to the appropriate vector
- it = sit;
- for (i=0; i<num_cell_particles; ++i)
- {
- for (int d=0; d<dim; ++d) velocity(d) = result[i](d);
- it->second.set_velocity(velocity);
- it++;
- }
- }
- };
-
- unsigned int get_global_particle_count(void) {
- unsigned int local_particles = _particles.size();
- unsigned int global_particles;
- int res;
-
- res = MPI_Allreduce(&local_particles, &global_particles, 1, MPI_UNSIGNED, MPI_SUM, _communicator);
- if (res != MPI_SUCCESS) exit(-1);
- return global_particles;
- };
-
- // Ensures that particles are not lost in the simulation
- void check_particle_count(void) {
- unsigned int global_particles = get_global_particle_count();
-
- AssertThrow (global_particles==global_sum_particles, ExcMessage ("Particle count unexpectedly changed."));
- };
+ }
};
- }
+
+ unsigned int get_global_particle_count(void)
+ {
+ unsigned int local_particles = _particles.size();
+ unsigned int global_particles;
+ int res;
+
+ res = MPI_Allreduce(&local_particles, &global_particles, 1, MPI_UNSIGNED, MPI_SUM, _communicator);
+ if (res != MPI_SUCCESS) exit(-1);
+ return global_particles;
+ };
+
+ // Ensures that particles are not lost in the simulation
+ void check_particle_count(void)
+ {
+ unsigned int global_particles = get_global_particle_count();
+
+ AssertThrow (global_particles==global_sum_particles, ExcMessage ("Particle count unexpectedly changed."));
+ };
+ };
+ }
}
#endif
Modified: branches/active_compositions/include/aspect/postprocess/tracer.h
===================================================================
--- branches/active_compositions/include/aspect/postprocess/tracer.h 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/include/aspect/postprocess/tracer.h 2012-10-18 20:18:18 UTC (rev 1286)
@@ -1,18 +1,18 @@
/*
Copyright (C) 2011, 2012 by the authors of the ASPECT code.
-
+
This file is part of ASPECT.
-
+
ASPECT is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-
+
ASPECT is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with ASPECT; see the file doc/COPYING. If not see
<http://www.gnu.org/licenses/>.
@@ -29,65 +29,64 @@
namespace aspect
{
- namespace Postprocess
+ namespace Postprocess
+ {
+ template <int dim>
+ class PassiveTracers : public Interface<dim>, public ::aspect::SimulatorAccess<dim>
{
- template <int dim>
- class PassiveTracers : public Interface<dim>, public ::aspect::SimulatorAccess<dim>
- {
- private:
- // The world holding the particles
- Particle::World<dim, Particle::BaseParticle<dim> > _world;
-
- // The integrator to use in moving the particles
- Particle::Integrator<dim, Particle::BaseParticle<dim> > *_integrator;
-
- // Abstract output object
- Particle::Output<dim, Particle::BaseParticle<dim> > *_output;
-
- // Whether this set has been initialized yet or not
- bool _initialized;
-
- // Number of initial particles to create
- // Use a double rather than int since doubles can represent up to 2^52
- double _num_initial_tracers;
-
- // Interval between output (in years if appropriate
- // simulation parameter is set, otherwise seconds)
- double _data_output_interval;
-
- // Output format for particle data
- std::string _data_output_format;
-
- // Integration scheme to move particles
- std::string _integration_scheme;
-
- // Records time for next output to occur
- double _next_data_output_time;
-
- public:
- PassiveTracers(void) : _initialized(false), _next_data_output_time(std::numeric_limits<double>::quiet_NaN()) {};
-
- virtual std::pair<std::string,std::string> execute (TableHandler &statistics);
-
- void set_next_data_output_time (const double current_time);
-
-
- /**
- * Declare the parameters this class takes through input files.
- */
- static
- void
- declare_parameters (ParameterHandler &prm);
-
- /**
- * Read the parameters this class declares from the parameter
- * file.
- */
- virtual
- void
- parse_parameters (ParameterHandler &prm);
- };
- }
+ private:
+ // The world holding the particles
+ Particle::World<dim, Particle::BaseParticle<dim> > _world;
+
+ // The integrator to use in moving the particles
+ Particle::Integrator<dim, Particle::BaseParticle<dim> > *_integrator;
+
+ // Abstract output object
+ Particle::Output<dim, Particle::BaseParticle<dim> > *_output;
+
+ // Whether this set has been initialized yet or not
+ bool _initialized;
+
+ // Number of initial particles to create
+ // Use a double rather than int since doubles can represent up to 2^52
+ double _num_initial_tracers;
+
+ // Interval between output (in years if appropriate
+ // simulation parameter is set, otherwise seconds)
+ double _data_output_interval;
+
+ // Output format for particle data
+ std::string _data_output_format;
+
+ // Integration scheme to move particles
+ std::string _integration_scheme;
+
+ // Records time for next output to occur
+ double _next_data_output_time;
+
+ public:
+ PassiveTracers(void) : _initialized(false), _next_data_output_time(std::numeric_limits<double>::quiet_NaN()) {};
+
+ virtual std::pair<std::string,std::string> execute (TableHandler &statistics);
+
+ void set_next_data_output_time (const double current_time);
+
+ /**
+ * Declare the parameters this class takes through input files.
+ */
+ static
+ void
+ declare_parameters (ParameterHandler &prm);
+
+ /**
+ * Read the parameters this class declares from the parameter
+ * file.
+ */
+ virtual
+ void
+ parse_parameters (ParameterHandler &prm);
+ };
+ }
}
#endif
Modified: branches/active_compositions/include/aspect/simulator.h
===================================================================
--- branches/active_compositions/include/aspect/simulator.h 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/include/aspect/simulator.h 2012-10-18 20:18:18 UTC (rev 1286)
@@ -1035,7 +1035,7 @@
* <code>source/simulator/helper_functions.cc</code>.
*/
void compute_depth_average_field(const unsigned int index,
- std::vector<double> &values) const;
+ std::vector<double> &values) const;
/**
* Compute a depth average of the current temperature. The function
Modified: branches/active_compositions/include/aspect/velocity_boundary_conditions/interface.h
===================================================================
--- branches/active_compositions/include/aspect/velocity_boundary_conditions/interface.h 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/include/aspect/velocity_boundary_conditions/interface.h 2012-10-18 20:18:18 UTC (rev 1286)
@@ -60,6 +60,7 @@
* Initialization function. Takes a reference to the geometry model so
* that derived classes can access them.
*/
+ virtual
void
initialize (const GeometryModel::Interface<dim> &geometry_model);
Modified: branches/active_compositions/source/compositional_initial_conditions/interface.cc
===================================================================
--- branches/active_compositions/source/compositional_initial_conditions/interface.cc 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/source/compositional_initial_conditions/interface.cc 2012-10-18 20:18:18 UTC (rev 1286)
@@ -103,15 +103,15 @@
prm.leave_subsection ();
if (n_compositional_fields == 0)
- return NULL;
+ return NULL;
else
- {
- std::string model_name;
- prm.enter_subsection ("Compositional initial conditions");
- {
- model_name = prm.get ("Model name");
- }
- prm.leave_subsection ();
+ {
+ std::string model_name;
+ prm.enter_subsection ("Compositional initial conditions");
+ {
+ model_name = prm.get ("Model name");
+ }
+ prm.leave_subsection ();
Interface<dim> *plugin = std_cxx1x::get<dim>(registered_plugins).create_plugin (model_name, prm);
plugin->initialize (geometry_model,
Modified: branches/active_compositions/source/material_model/steinberger.cc
===================================================================
--- branches/active_compositions/source/material_model/steinberger.cc 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/source/material_model/steinberger.cc 2012-10-18 20:18:18 UTC (rev 1286)
@@ -226,11 +226,11 @@
const double np = get_np(pressure);
const unsigned int inp = static_cast<unsigned int>(np);
- Assert(nT<values.n_rows(), ExcMessage("not in range"));
- Assert(np<values.n_cols(), ExcMessage("not in range"));
+ Assert(inT<values.n_rows(), ExcMessage("not in range"));
+ Assert(inp<values.n_cols(), ExcMessage("not in range"));
if (!interpol)
- return values[nT][np];
+ return values[inT][inp];
else
{
// compute the coordinates of this point in the
@@ -242,10 +242,10 @@
Assert ((0 <= eta) && (eta <= 1), ExcInternalError());
// use these coordinates for a bilinear interpolation
- return ((1-xi)*(1-eta)*values[nT][np] +
- xi *(1-eta)*values[nT+1][np] +
- (1-xi)*eta *values[nT][np+1] +
- xi *eta *values[nT+1][np+1]);
+ return ((1-xi)*(1-eta)*values[inT][inp] +
+ xi *(1-eta)*values[inT+1][inp] +
+ (1-xi)*eta *values[inT][inp+1] +
+ xi *eta *values[inT+1][inp+1]);
}
}
@@ -419,7 +419,7 @@
static internal::lateral_viscosity_lookup lat_table(datadirectory+lateral_viscosity_file_name);
const double depth = this->get_geometry_model().depth(position);
- const unsigned int idx = 100 * depth / this->get_geometry_model().maximal_depth();
+ const unsigned int idx = static_cast<unsigned int>(avg_temp.size() * depth / this->get_geometry_model().maximal_depth());
const double delta_temp = temperature-avg_temp[idx];
const double adia_temp = this->get_adiabatic_conditions().temperature(position);
Modified: branches/active_compositions/source/material_model/table.cc
===================================================================
--- branches/active_compositions/source/material_model/table.cc 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/source/material_model/table.cc 2012-10-18 20:18:18 UTC (rev 1286)
@@ -682,7 +682,7 @@
"whether the model is compressible. ");
prm.enter_subsection ("Viscosity");
{
- prm.declare_entry ("ViscositycModel", "Exponential",
+ prm.declare_entry ("Viscosity Model", "Exponential",
Patterns::Anything (),
"Viscosity Model");
prm.declare_entry ("Reference Viscosity", "5e24",
Modified: branches/active_compositions/source/postprocess/tracer.cc
===================================================================
--- branches/active_compositions/source/postprocess/tracer.cc 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/source/postprocess/tracer.cc 2012-10-18 20:18:18 UTC (rev 1286)
@@ -1,18 +1,18 @@
/*
Copyright (C) 2011, 2012 by the authors of the ASPECT code.
-
+
This file is part of ASPECT.
-
+
ASPECT is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-
+
ASPECT is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with ASPECT; see the file doc/COPYING. If not see
<http://www.gnu.org/licenses/>.
@@ -24,166 +24,183 @@
namespace aspect
{
- namespace Postprocess
+ namespace Postprocess
+ {
+ template <int dim>
+ std::pair<std::string,std::string> PassiveTracers<dim>::execute (TableHandler &statistics)
{
- template <int dim>
- std::pair<std::string,std::string> PassiveTracers<dim>::execute (TableHandler &statistics)
+ std::string result_string = "done.", data_file_name;
+ bool output_data = false;
+
+ if (!_initialized)
{
- std::string result_string = "done.", data_file_name;
- bool output_data = false;
-
- if (!_initialized)
+ // Create an output object depending on what the parameters specify
+ if (_data_output_format == "ascii")
{
- // Create an output object depending on what the parameters specify
- if (_data_output_format == "ascii") {
- _output = new Particle::ASCIIOutput<dim,Particle::BaseParticle<dim> >();
- } else if (_data_output_format == "vtu") {
- _output = new Particle::VTUOutput<dim,Particle::BaseParticle<dim> >();
- } else if (_data_output_format == "hdf5") {
- _output = new Particle::HDF5Output<dim,Particle::BaseParticle<dim> >();
- } else {
- _output = new Particle::NullOutput<dim,Particle::BaseParticle<dim> >();
- }
-
- // Set the output directory for the particle output to be stored in
- _output->set_output_directory(this->get_output_directory());
-
- // Create an integrator object depending on the specified parameter
- if (_integration_scheme == "euler") {
- _integrator = new Particle::EulerIntegrator<dim, Particle::BaseParticle<dim> >;
- } else if (_integration_scheme == "rk2") {
- _integrator = new Particle::RK2Integrator<dim, Particle::BaseParticle<dim> >;
- } else if (_integration_scheme == "rk4") {
- _integrator = new Particle::RK4Integrator<dim, Particle::BaseParticle<dim> >;
- }
-
- // Set up the particle world with the appropriate simulation objects
- _world.set_mapping(&(this->get_mapping()));
- _world.set_triangulation(&(this->get_triangulation()));
- _world.set_dof_handler(&(this->get_dof_handler()));
- _world.set_integrator(_integrator);
- _world.set_mpi_comm(this->get_mpi_communicator());
-
- // And initialize the world
- _world.init();
-
- _next_data_output_time = this->get_time();
-
- // Add the specified number of particles
- _world.global_add_particles(_num_initial_tracers);
-
- _initialized = true;
+ _output = new Particle::ASCIIOutput<dim,Particle::BaseParticle<dim> >();
}
-
- // Advance the particles in the world by the current timestep
- _world.advance_timestep(this->get_timestep(), this->get_solution());
-
- // If it's time to generate an output file, call the appropriate functions and reset the timer
- if (this->get_time() >= _next_data_output_time)
+ else if (_data_output_format == "vtu")
{
- set_next_data_output_time (this->get_time());
- data_file_name = _output->output_particle_data(_world.particles(), this->get_time());
- output_data = true;
+ _output = new Particle::VTUOutput<dim,Particle::BaseParticle<dim> >();
}
- if (output_data) result_string += " Wrote particle data: " + data_file_name + ".";
-
- return std::make_pair("Advecting particles...", result_string);
- }
-
-
-
- template <int dim>
- void
- PassiveTracers<dim>::set_next_data_output_time (const double current_time)
- {
- // if output_interval is positive, then set the next output interval to
- // a positive multiple; we need to interpret output_interval either
- // as years or as seconds
- if (_data_output_interval > 0)
+ else if (_data_output_format == "hdf5")
{
- if (this->convert_output_to_years() == true)
- _next_data_output_time = std::ceil(current_time / (_data_output_interval * year_in_seconds)) *
- (_data_output_interval * year_in_seconds);
- else
- _next_data_output_time = std::ceil(current_time / (_data_output_interval)) *
- (_data_output_interval);
+ _output = new Particle::HDF5Output<dim,Particle::BaseParticle<dim> >();
}
- }
-
- template <int dim>
- void
- PassiveTracers<dim>::declare_parameters (ParameterHandler &prm)
- {
- prm.enter_subsection("Postprocess");
+ else
{
- prm.enter_subsection("Tracers");
- {
- prm.declare_entry ("Number of tracers", "1e3",
- Patterns::Double (0),
- "Total number of tracers to create (not per processor or per element).");
- prm.declare_entry ("Time between data output", "1e8",
- Patterns::Double (0),
- "The time interval between each generation of "
- "output files. A value of zero indicates that "
- "output should be generated every time step. "
- "Units: years if the "
- "'Use years in output instead of seconds' parameter is set; "
- "seconds otherwise.");
- prm.declare_entry("Data output format", "none",
- Patterns::Selection("none|"
- "ascii|"
- "vtu|"
- "hdf5"
- ),
- "File format to output raw particle data in.");
- prm.declare_entry("Integration scheme", "rk2",
- Patterns::Selection("euler|"
- "rk2|"
- "rk4"
- ),
- "Integration scheme to move particles.");
- }
- prm.leave_subsection ();
+ _output = new Particle::NullOutput<dim,Particle::BaseParticle<dim> >();
}
- prm.leave_subsection ();
+
+ // Set the output directory for the particle output to be stored in
+ _output->set_output_directory(this->get_output_directory());
+
+ // Create an integrator object depending on the specified parameter
+ if (_integration_scheme == "euler")
+ {
+ _integrator = new Particle::EulerIntegrator<dim, Particle::BaseParticle<dim> >;
+ }
+ else if (_integration_scheme == "rk2")
+ {
+ _integrator = new Particle::RK2Integrator<dim, Particle::BaseParticle<dim> >;
+ }
+ else if (_integration_scheme == "rk4")
+ {
+ _integrator = new Particle::RK4Integrator<dim, Particle::BaseParticle<dim> >;
+ }
+ else if (_integration_scheme == "hybrid")
+ {
+ _integrator = new Particle::HybridIntegrator<dim, Particle::BaseParticle<dim> >(&(this->get_triangulation()), &(this->get_dof_handler()));
+ }
+
+ // Set up the particle world with the appropriate simulation objects
+ _world.set_mapping(&(this->get_mapping()));
+ _world.set_triangulation(&(this->get_triangulation()));
+ _world.set_dof_handler(&(this->get_dof_handler()));
+ _world.set_integrator(_integrator);
+ _world.set_mpi_comm(this->get_mpi_communicator());
+
+ // And initialize the world
+ _world.init();
+
+ _next_data_output_time = this->get_time();
+
+ // Add the specified number of particles
+ _world.global_add_particles(_num_initial_tracers);
+
+ _initialized = true;
}
-
-
- template <int dim>
- void
- PassiveTracers<dim>::parse_parameters (ParameterHandler &prm)
+
+ // Advance the particles in the world by the current timestep
+ _world.advance_timestep(this->get_timestep(), this->get_solution());
+
+ // If it's time to generate an output file, call the appropriate functions and reset the timer
+ if (this->get_time() >= _next_data_output_time)
{
- prm.enter_subsection("Postprocess");
- {
- prm.enter_subsection("Tracers");
- {
- _num_initial_tracers = prm.get_double ("Number of tracers");
- _data_output_interval = prm.get_double ("Time between data output");
- _data_output_format = prm.get("Data output format");
+ set_next_data_output_time (this->get_time());
+ data_file_name = _output->output_particle_data(_world.particles(), this->get_time());
+ output_data = true;
+ }
+ if (output_data) result_string += " Wrote particle data: " + data_file_name + ".";
+
+ return std::make_pair("Advecting particles...", result_string);
+ }
+
+
+
+ template <int dim>
+ void
+ PassiveTracers<dim>::set_next_data_output_time (const double current_time)
+ {
+ // if output_interval is positive, then set the next output interval to
+ // a positive multiple; we need to interpret output_interval either
+ // as years or as seconds
+ if (_data_output_interval > 0)
+ {
+ if (this->convert_output_to_years() == true)
+ _next_data_output_time = std::ceil(current_time / (_data_output_interval * year_in_seconds)) *
+ (_data_output_interval * year_in_seconds);
+ else
+ _next_data_output_time = std::ceil(current_time / (_data_output_interval)) *
+ (_data_output_interval);
+ }
+ }
+
+ template <int dim>
+ void
+ PassiveTracers<dim>::declare_parameters (ParameterHandler &prm)
+ {
+ prm.enter_subsection("Postprocess");
+ {
+ prm.enter_subsection("Tracers");
+ {
+ prm.declare_entry ("Number of tracers", "1e3",
+ Patterns::Double (0),
+ "Total number of tracers to create (not per processor or per element).");
+ prm.declare_entry ("Time between data output", "1e8",
+ Patterns::Double (0),
+ "The time interval between each generation of "
+ "output files. A value of zero indicates that "
+ "output should be generated every time step. "
+ "Units: years if the "
+ "'Use years in output instead of seconds' parameter is set; "
+ "seconds otherwise.");
+ prm.declare_entry("Data output format", "none",
+ Patterns::Selection("none|"
+ "ascii|"
+ "vtu|"
+ "hdf5"
+ ),
+ "File format to output raw particle data in.");
+ prm.declare_entry("Integration scheme", "rk2",
+ Patterns::Selection("euler|"
+ "rk2|"
+ "rk4|"
+ "hybrid"
+ ),
+ "Integration scheme to move particles.");
+ }
+ prm.leave_subsection ();
+ }
+ prm.leave_subsection ();
+ }
+
+
+ template <int dim>
+ void
+ PassiveTracers<dim>::parse_parameters (ParameterHandler &prm)
+ {
+ prm.enter_subsection("Postprocess");
+ {
+ prm.enter_subsection("Tracers");
+ {
+ _num_initial_tracers = prm.get_double ("Number of tracers");
+ _data_output_interval = prm.get_double ("Time between data output");
+ _data_output_format = prm.get("Data output format");
#ifndef DEAL_II_HAVE_HDF5
- AssertThrow (_data_output_format == "hdf5",
- ExcMessage ("deal.ii was not compiled with HDF5 support, "
- "so HDF5 output is not possible. Please "
- "recompile deal.ii with HDF5 support turned on."));
+ AssertThrow (_data_output_format == "hdf5",
+ ExcMessage ("deal.ii was not compiled with HDF5 support, "
+ "so HDF5 output is not possible. Please "
+ "recompile deal.ii with HDF5 support turned on."));
#endif
- _integration_scheme = prm.get("Integration scheme");
- }
- prm.leave_subsection ();
- }
- prm.leave_subsection ();
+ _integration_scheme = prm.get("Integration scheme");
}
+ prm.leave_subsection ();
+ }
+ prm.leave_subsection ();
}
+ }
}
// explicit instantiations
namespace aspect
{
- namespace Postprocess
- {
- ASPECT_REGISTER_POSTPROCESSOR(PassiveTracers,
- "tracers",
- "Postprocessor that propagates passive tracer particles based on the "
- "velocity field.")
- }
+ namespace Postprocess
+ {
+ ASPECT_REGISTER_POSTPROCESSOR(PassiveTracers,
+ "tracers",
+ "Postprocessor that propagates passive tracer particles based on the "
+ "velocity field.")
+ }
}
Modified: branches/active_compositions/source/postprocess/visualization.cc
===================================================================
--- branches/active_compositions/source/postprocess/visualization.cc 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/source/postprocess/visualization.cc 2012-10-18 20:18:18 UTC (rev 1286)
@@ -130,7 +130,7 @@
solution_names.push_back ("p");
solution_names.push_back ("T");
for (unsigned int i=0; i<this->n_compositional_fields(); ++i)
- solution_names.push_back ("C_" + boost::lexical_cast<std::string>(i+1));
+ solution_names.push_back ("C_" + boost::lexical_cast<std::string>(i+1));
std::vector<DataComponentInterpretation::DataComponentInterpretation>
Modified: branches/active_compositions/source/simulator/core.cc
===================================================================
--- branches/active_compositions/source/simulator/core.cc 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/source/simulator/core.cc 2012-10-18 20:18:18 UTC (rev 1286)
@@ -290,14 +290,14 @@
* convert this into an object that matches the Function@<dim@>
* interface.
*
- * @param n_comp_fields The number of compositional fields used in
- * this vector-valued problem. Needed to determine
- * the total size of the output vectors.
+ * @param n_comp_fields The number of compositional fields used in
+ * this vector-valued problem. Needed to determine
+ * the total size of the output vectors.
* @param function_object The scalar function that will form one component
* of the resulting Function object.
*/
VectorFunctionFromVelocityFunctionObject (const unsigned int n_comp_fields,
- const std_cxx1x::function<Tensor<1,dim> (const Point<dim> &)> &function_object);
+ const std_cxx1x::function<Tensor<1,dim> (const Point<dim> &)> &function_object);
/**
* Return the value of the
@@ -420,7 +420,7 @@
statistics.add_value("Number of temperature degrees of freedom",
system_dofs_per_block[2]);
statistics.add_value("Number of composition degrees of freedom",
- (parameters.n_compositional_fields>0)?system_dofs_per_block[3]:0);
+ (parameters.n_compositional_fields>0)?system_dofs_per_block[3]:0);
// then interpolate the current boundary velocities. this adds to
@@ -630,16 +630,16 @@
system_relevant_partitioning.push_back(system_relevant_set.get_view(n_u+n_p, n_u+n_p+n_T));
{
- unsigned int n_C_so_far = 0;
+ unsigned int n_C_so_far = 0;
- for (unsigned int i=0; i<parameters.n_compositional_fields; ++i)
- {
- system_partitioning.push_back(system_index_set.get_view(n_u+n_p+n_T+n_C_so_far,
- n_u+n_p+n_T+n_C_so_far+n_C[i]));
- system_relevant_partitioning.push_back(system_relevant_set.get_view(n_u+n_p+n_T+n_C_so_far,
- n_u+n_p+n_T+n_C_so_far+n_C[i]));
- n_C_so_far += n_C[i];
- }
+ for (unsigned int i=0; i<parameters.n_compositional_fields; ++i)
+ {
+ system_partitioning.push_back(system_index_set.get_view(n_u+n_p+n_T+n_C_so_far,
+ n_u+n_p+n_T+n_C_so_far+n_C[i]));
+ system_relevant_partitioning.push_back(system_relevant_set.get_view(n_u+n_p+n_T+n_C_so_far,
+ n_u+n_p+n_T+n_C_so_far+n_C[i]));
+ n_C_so_far += n_C[i];
+ }
}
}
@@ -894,13 +894,10 @@
estimated_error_per_cell_rho,
dim+1);
- // Scale gradient in each cell with the
- // correct power of h. Otherwise, error
- // indicators do not reduce when
- // refined if there is a density
- // jump. We need at least order 1 for
- // the error not to grow when refining,
- // so anything >1 should work.
+ // Scale gradient in each cell with the correct power of h. Otherwise,
+ // error indicators do not reduce when refined if there is a density
+ // jump. We need at least order 1 for the error not to grow when
+ // refining, so anything >1 should work.
double power = 0.0;
if (parameters.refinement_strategy == "Density c_p temperature")
power = 1.5;
@@ -973,7 +970,7 @@
if (parameters.refinement_strategy == "Velocity")
{
std::vector<bool> velocity_mask (dim+2+parameters.n_compositional_fields, false);
- for (unsigned int i=0;i<dim;++i)
+ for (unsigned int i=0; i<dim; ++i)
velocity_mask[i] = true;
KellyErrorEstimator<dim>::estimate (dof_handler,
QGauss<dim-1>(parameters.stokes_velocity_degree+1),
@@ -1030,7 +1027,8 @@
<< std::endl;
for (unsigned int i=0; i<estimated_error_per_cell.size(); ++i)
- estimated_error_per_cell(i) = estimated_error_per_cell_T(i)*(1.0+estimated_error_per_cell_rho(i));
+ estimated_error_per_cell(i)
+ = estimated_error_per_cell_T(i)*(1.0+estimated_error_per_cell_rho(i));
}
else if (parameters.refinement_strategy == "Density c_p temperature")
{
@@ -1128,7 +1126,8 @@
current_linearization_point = old_solution;
if (timestep_number > 1)
{
- //Trilinos sadd does not like ghost vectors even as input. Copy into distributed vectors for now:
+ //TODO: Trilinos sadd does not like ghost vectors even as input. Copy
+ //into distributed vectors for now:
LinearAlgebra::BlockVector distr_solution (system_rhs);
distr_solution = current_linearization_point;
LinearAlgebra::BlockVector distr_old_solution (system_rhs);
@@ -1189,13 +1188,15 @@
{
assemble_composition_system (n);
build_composition_preconditioner(n);
- composition_residual[n] = solve_temperature_or_composition(1+n); // 1+n is correct, because 0 is for temperature
+ composition_residual[n]
+ = solve_temperature_or_composition(1+n); // 1+n is correct, because 0 is for temperature
current_linearization_point.block(3+n) = solution.block(3+n);
}
assemble_stokes_system();
if (iteration == 0)
build_stokes_preconditioner();
+
const double stokes_residual = solve_stokes();
current_linearization_point = solution;
Modified: branches/active_compositions/source/simulator/helper_functions.cc
===================================================================
--- branches/active_compositions/source/simulator/helper_functions.cc 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/source/simulator/helper_functions.cc 2012-10-18 20:18:18 UTC (rev 1286)
@@ -299,9 +299,9 @@
{
fe_values.reinit (cell);
fe_values[field].get_function_values (old_solution,
- old_field_values);
+ old_field_values);
fe_values[field].get_function_values (old_old_solution,
- old_old_field_values);
+ old_old_field_values);
for (unsigned int q=0; q<n_q_points; ++q)
{
@@ -310,9 +310,9 @@
time_step/old_time_step * old_old_field_values[q];
min_local_field = std::min (min_local_field,
- extrapolated_field);
+ extrapolated_field);
max_local_field = std::max (max_local_field,
- extrapolated_field);
+ extrapolated_field);
}
}
}
@@ -326,16 +326,16 @@
{
fe_values.reinit (cell);
fe_values[field].get_function_values (old_solution,
- old_field_values);
+ old_field_values);
for (unsigned int q=0; q<n_q_points; ++q)
{
const double extrapolated_field = old_field_values[q];
min_local_field = std::min (min_local_field,
- extrapolated_field);
+ extrapolated_field);
max_local_field = std::max (max_local_field,
- extrapolated_field);
+ extrapolated_field);
}
}
}
@@ -548,7 +548,7 @@
//TODO: unify the following functions
template <int dim>
void Simulator<dim>::compute_depth_average_field(const unsigned int index,
- std::vector<double> &values) const
+ std::vector<double> &values) const
{
// make sure that what we get here is really an index of one of the temperature/compositional fields
AssertIndexRange(index,parameters.n_compositional_fields+1);
Modified: branches/active_compositions/source/simulator/initial_conditions.cc
===================================================================
--- branches/active_compositions/source/simulator/initial_conditions.cc 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/source/simulator/initial_conditions.cc 2012-10-18 20:18:18 UTC (rev 1286)
@@ -108,9 +108,9 @@
: compositional_initial_conditions->initial_composition(fe_values.quadrature_point(i),n-1));
initial_solution(local_dof_indices[system_local_dof]) = value;
- if (base_element != 2)
- Assert (value >= 0,
- ExcMessage("Invalid initial conditions: Composition is negative"));
+ if (base_element != 2)
+ Assert (value >= 0,
+ ExcMessage("Invalid initial conditions: Composition is negative"));
// if it is specified in the parameter file that the sum of all compositional fields
// must not exceed one, this should be checked
Modified: branches/active_compositions/source/simulator/simulator_access.cc
===================================================================
--- branches/active_compositions/source/simulator/simulator_access.cc 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/source/simulator/simulator_access.cc 2012-10-18 20:18:18 UTC (rev 1286)
@@ -189,14 +189,14 @@
}
template <int dim>
- void
- SimulatorAccess<dim>::get_depth_average_composition(const unsigned int composition_index, std::vector<double> &values) const
- {
+ void
+ SimulatorAccess<dim>::get_depth_average_composition(const unsigned int composition_index, std::vector<double> &values) const
+ {
// make sure that what we get here is really an index of one of the compositional fields
AssertIndexRange(composition_index,this->n_compositional_fields());
- simulator->compute_depth_average_field(composition_index+1, values);
- }
+ simulator->compute_depth_average_field(composition_index+1, values);
+ }
template <int dim>
void
@@ -307,6 +307,6 @@
{
#define INSTANTIATE(dim) \
template class SimulatorAccess<dim>; \
-
+
ASPECT_INSTANTIATE(INSTANTIATE)
}
Modified: branches/active_compositions/source/simulator/solver.cc
===================================================================
--- branches/active_compositions/source/simulator/solver.cc 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/source/simulator/solver.cc 2012-10-18 20:18:18 UTC (rev 1286)
@@ -294,8 +294,8 @@
block_remap = current_linearization_point.block (index+2);
// (ab)use the distributed solution vector to temporarily put a residual in
initial_residual = system_matrix.block(index+2,index+2).residual (distributed_solution.block(index+2),
- block_remap,
- system_rhs.block(index+2));
+ block_remap,
+ system_rhs.block(index+2));
current_constraints.set_zero(distributed_solution);
// then overwrite it again with the current best guess and solve the linear system
Modified: branches/active_compositions/tests/adiabatic_conditions/depthaverage.plt
===================================================================
--- branches/active_compositions/tests/adiabatic_conditions/depthaverage.plt 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/adiabatic_conditions/depthaverage.plt 2012-10-18 20:18:18 UTC (rev 1286)
@@ -1,102 +1,102 @@
# time, depth, avg T, adiabatic T, velocity magnitude, avg sinking velocity, avg Vs, avg Vp, avg viscosity
-0.000000e+00 0.000000e+00 1.613000e+03 1.613000e+03 1.076478e+34 3.771359e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.890000e+04 1.613000e+03 1.620407e+03 2.933324e+34 6.117999e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 5.780000e+04 1.613000e+03 1.627849e+03 2.002527e+34 1.877558e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 8.670000e+04 1.613000e+03 1.635325e+03 3.161616e+34 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.156000e+05 1.613000e+03 1.642835e+03 2.291657e+33 5.262167e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.445000e+05 1.613000e+03 1.650379e+03 5.339901e+33 3.968225e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.734000e+05 1.613000e+03 1.657958e+03 5.914134e+33 4.186749e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.023000e+05 1.613000e+03 1.665572e+03 1.066451e+33 1.449489e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.312000e+05 1.613000e+03 1.673221e+03 3.412001e+32 1.102139e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.601000e+05 1.613000e+03 1.680905e+03 6.321215e+32 9.175466e+13 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.890000e+05 1.613000e+03 1.688625e+03 3.104828e+32 1.005661e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 3.179000e+05 1.613000e+03 1.696379e+03 1.523759e+32 3.020796e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 3.468000e+05 1.613000e+03 1.704170e+03 1.673683e+32 4.333519e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 3.757000e+05 1.613000e+03 1.711996e+03 1.512983e+32 3.919175e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 4.046000e+05 1.613000e+03 1.719858e+03 1.290822e+32 2.916747e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 4.335000e+05 1.613000e+03 1.727756e+03 1.275452e+32 2.442986e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 4.624000e+05 1.613000e+03 1.735691e+03 1.256400e+32 2.353860e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 4.913000e+05 1.613000e+03 1.743662e+03 1.224816e+32 2.585525e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 5.202000e+05 1.613000e+03 1.751669e+03 1.175171e+32 2.685407e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 5.491000e+05 1.613000e+03 1.759714e+03 1.148043e+32 2.682201e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 5.780000e+05 1.613000e+03 1.767795e+03 1.121838e+32 2.624251e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 6.069000e+05 1.613000e+03 1.775913e+03 1.099644e+32 2.582253e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 6.358000e+05 1.613000e+03 1.784069e+03 1.084645e+32 2.541116e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 6.647000e+05 1.613000e+03 1.792262e+03 1.070315e+32 2.527808e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 6.936000e+05 1.613000e+03 1.800493e+03 1.035194e+32 2.474213e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 7.225000e+05 1.613000e+03 1.808761e+03 1.001764e+32 2.441282e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 7.514000e+05 1.613000e+03 1.817068e+03 9.645664e+31 2.409429e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 7.803000e+05 1.613000e+03 1.825413e+03 9.399241e+31 2.425585e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 8.092000e+05 1.613000e+03 1.833796e+03 9.039187e+31 2.390412e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 8.381000e+05 1.613000e+03 1.842217e+03 8.884488e+31 2.377236e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 8.670000e+05 1.613000e+03 1.850677e+03 8.695470e+31 2.361498e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 8.959000e+05 1.613000e+03 1.859176e+03 8.502199e+31 2.324921e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 9.248000e+05 1.613000e+03 1.867714e+03 8.243795e+31 2.291625e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 9.537000e+05 1.613000e+03 1.876291e+03 7.976327e+31 2.255069e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 9.826000e+05 1.613000e+03 1.884908e+03 7.854831e+31 2.230525e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.011500e+06 1.613000e+03 1.893564e+03 7.697677e+31 2.210723e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.040400e+06 1.613000e+03 1.902260e+03 7.457242e+31 2.197351e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.069300e+06 1.613000e+03 1.910996e+03 7.416471e+31 2.214634e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.098200e+06 1.613000e+03 1.919772e+03 7.119711e+31 2.156711e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.127100e+06 1.613000e+03 1.928588e+03 7.000761e+31 2.156972e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.156000e+06 1.613000e+03 1.937445e+03 6.855171e+31 2.123460e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.184900e+06 1.613000e+03 1.946343e+03 6.697413e+31 2.107466e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.213800e+06 1.613000e+03 1.955281e+03 6.588616e+31 2.099265e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.242700e+06 1.613000e+03 1.964260e+03 6.362847e+31 2.038452e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.271600e+06 1.613000e+03 1.973281e+03 6.199416e+31 2.019308e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.300500e+06 1.613000e+03 1.982343e+03 6.048874e+31 1.985564e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.329400e+06 1.613000e+03 1.991447e+03 5.969401e+31 1.989474e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.358300e+06 1.613000e+03 2.000592e+03 5.907901e+31 1.991689e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.387200e+06 1.613000e+03 2.009780e+03 5.695565e+31 1.942372e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.416100e+06 1.613000e+03 2.019009e+03 5.496715e+31 1.904391e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.445000e+06 1.613000e+03 2.028281e+03 5.301632e+31 1.877371e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.473900e+06 1.613000e+03 2.037596e+03 4.944718e+31 1.830227e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.502800e+06 1.613000e+03 2.046953e+03 4.558157e+31 1.786508e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.531700e+06 1.613000e+03 2.056354e+03 4.304507e+31 1.761305e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.560600e+06 1.613000e+03 2.065797e+03 4.063826e+31 1.800801e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.589500e+06 1.613000e+03 2.075284e+03 4.077020e+31 1.741749e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.618400e+06 1.613000e+03 2.084815e+03 3.982321e+31 1.792959e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.647300e+06 1.613000e+03 2.094389e+03 3.830460e+31 1.703883e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.676200e+06 1.613000e+03 2.104007e+03 3.712136e+31 1.699546e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.705100e+06 1.613000e+03 2.113669e+03 3.611368e+31 1.689342e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.734000e+06 1.613000e+03 2.123376e+03 3.504255e+31 1.639863e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.762900e+06 1.613000e+03 2.133128e+03 3.400428e+31 1.649527e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.791800e+06 1.613000e+03 2.142924e+03 3.291582e+31 1.608715e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.820700e+06 1.613000e+03 2.152765e+03 3.153683e+31 1.571040e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.849600e+06 1.613000e+03 2.162651e+03 3.109841e+31 1.580243e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.878500e+06 1.613000e+03 2.172583e+03 2.982505e+31 1.536216e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.907400e+06 1.613000e+03 2.182560e+03 2.885470e+31 1.512409e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.936300e+06 1.613000e+03 2.192583e+03 2.829708e+31 1.538275e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.965200e+06 1.613000e+03 2.202652e+03 2.716209e+31 1.467144e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 1.994100e+06 1.613000e+03 2.212768e+03 2.622395e+31 1.469769e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.023000e+06 1.613000e+03 2.222930e+03 2.567342e+31 1.443206e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.051900e+06 1.613000e+03 2.233138e+03 2.458275e+31 1.409237e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.080800e+06 1.613000e+03 2.243394e+03 2.402652e+31 1.407206e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.109700e+06 1.613000e+03 2.253696e+03 2.333732e+31 1.412856e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.138600e+06 1.613000e+03 2.264046e+03 2.258749e+31 1.382760e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.167500e+06 1.613000e+03 2.274443e+03 2.192187e+31 1.341816e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.196400e+06 1.613000e+03 2.284888e+03 2.100306e+31 1.318281e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.225300e+06 1.613000e+03 2.295381e+03 2.042049e+31 1.317989e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.254200e+06 1.613000e+03 2.305923e+03 1.976659e+31 1.319846e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.283100e+06 1.613000e+03 2.316512e+03 1.891861e+31 1.263410e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.312000e+06 1.613000e+03 2.327151e+03 1.845274e+31 1.262534e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.340900e+06 1.613000e+03 2.337838e+03 1.793589e+31 1.255245e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.369800e+06 1.613000e+03 2.348574e+03 1.744275e+31 1.224077e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.398700e+06 1.613000e+03 2.359359e+03 1.685265e+31 1.177019e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.427600e+06 1.613000e+03 2.370194e+03 1.630638e+31 1.218726e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.456500e+06 1.613000e+03 2.381079e+03 1.598152e+31 1.295233e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.485400e+06 1.613000e+03 2.392014e+03 1.536570e+31 1.288296e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.514300e+06 1.613000e+03 2.402999e+03 1.534598e+31 1.074727e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.543200e+06 1.613000e+03 2.414035e+03 1.688949e+31 6.693185e+14 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.572100e+06 1.613000e+03 2.425121e+03 1.663505e+31 6.812702e+14 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.601000e+06 1.613000e+03 2.436258e+03 1.894833e+31 1.811255e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.629900e+06 1.613000e+03 2.447446e+03 5.230322e+31 4.751702e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.658800e+06 1.613000e+03 2.458686e+03 4.335472e+31 4.075767e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.687700e+06 1.613000e+03 2.469977e+03 9.648384e+31 4.233328e+14 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.716600e+06 1.613000e+03 2.481320e+03 6.390745e+32 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.745500e+06 1.613000e+03 2.492715e+03 3.804546e+32 2.283399e+14 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.774400e+06 1.613000e+03 2.504162e+03 1.378192e+33 2.450999e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.803300e+06 1.613000e+03 2.515663e+03 2.324771e+33 3.342235e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.832200e+06 1.613000e+03 2.527215e+03 1.166649e+33 5.763486e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
-0.000000e+00 2.861100e+06 1.613000e+03 2.538821e+03 6.975717e+32 1.424615e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 0.000000e+00 1.613000e+03 1.613000e+03 1.076506e+34 3.771468e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.890000e+04 1.613000e+03 1.620406e+03 2.933398e+34 6.118201e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 5.780000e+04 1.613000e+03 1.627846e+03 2.002438e+34 1.877722e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 8.670000e+04 1.613000e+03 1.635320e+03 3.161305e+34 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.156000e+05 1.613000e+03 1.642829e+03 2.291495e+33 5.267771e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.445000e+05 1.613000e+03 1.650372e+03 5.343252e+33 3.969531e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.734000e+05 1.613000e+03 1.657949e+03 5.915942e+33 4.188154e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.023000e+05 1.613000e+03 1.665561e+03 1.066040e+33 1.450521e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.312000e+05 1.613000e+03 1.673209e+03 3.394143e+32 1.103842e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.601000e+05 1.613000e+03 1.680891e+03 6.303023e+32 9.382921e+13 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.890000e+05 1.613000e+03 1.688609e+03 3.097193e+32 1.013811e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 3.179000e+05 1.613000e+03 1.696362e+03 1.522514e+32 3.033659e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 3.468000e+05 1.613000e+03 1.704151e+03 1.673588e+32 4.349316e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 3.757000e+05 1.613000e+03 1.711975e+03 1.509008e+32 3.930617e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 4.046000e+05 1.613000e+03 1.719836e+03 1.283860e+32 2.925526e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 4.335000e+05 1.613000e+03 1.727732e+03 1.267613e+32 2.452507e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 4.624000e+05 1.613000e+03 1.735665e+03 1.248468e+32 2.363781e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 4.913000e+05 1.613000e+03 1.743634e+03 1.217053e+32 2.594774e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 5.202000e+05 1.613000e+03 1.751640e+03 1.166762e+32 2.693980e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 5.491000e+05 1.613000e+03 1.759682e+03 1.138421e+32 2.690019e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 5.780000e+05 1.613000e+03 1.767762e+03 1.111257e+32 2.632545e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 6.069000e+05 1.613000e+03 1.775878e+03 1.088559e+32 2.590338e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 6.358000e+05 1.613000e+03 1.784032e+03 1.073289e+32 2.549884e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 6.647000e+05 1.613000e+03 1.792224e+03 1.058368e+32 2.536022e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 6.936000e+05 1.613000e+03 1.800452e+03 1.022272e+32 2.481818e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 7.225000e+05 1.613000e+03 1.808719e+03 9.881382e+31 2.448670e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 7.514000e+05 1.613000e+03 1.817024e+03 9.502679e+31 2.416720e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 7.803000e+05 1.613000e+03 1.825366e+03 9.249774e+31 2.432706e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 8.092000e+05 1.613000e+03 1.833748e+03 8.881693e+31 2.397185e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 8.381000e+05 1.613000e+03 1.842167e+03 8.722209e+31 2.383690e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 8.670000e+05 1.613000e+03 1.850625e+03 8.527815e+31 2.368076e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 8.959000e+05 1.613000e+03 1.859122e+03 8.329637e+31 2.330822e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 9.248000e+05 1.613000e+03 1.867658e+03 8.063706e+31 2.297496e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 9.537000e+05 1.613000e+03 1.876233e+03 7.791991e+31 2.260587e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 9.826000e+05 1.613000e+03 1.884848e+03 7.661392e+31 2.236067e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.011500e+06 1.613000e+03 1.893502e+03 7.496653e+31 2.216327e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.040400e+06 1.613000e+03 1.902196e+03 7.251043e+31 2.203398e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.069300e+06 1.613000e+03 1.910930e+03 7.204819e+31 2.220453e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.098200e+06 1.613000e+03 1.919704e+03 6.903449e+31 2.163181e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.127100e+06 1.613000e+03 1.928518e+03 6.780991e+31 2.164149e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.156000e+06 1.613000e+03 1.937373e+03 6.630086e+31 2.131167e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.184900e+06 1.613000e+03 1.946268e+03 6.466469e+31 2.116218e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.213800e+06 1.613000e+03 1.955204e+03 6.353271e+31 2.108668e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.242700e+06 1.613000e+03 1.964181e+03 6.121659e+31 2.048099e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.271600e+06 1.613000e+03 1.973200e+03 5.953919e+31 2.029722e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.300500e+06 1.613000e+03 1.982260e+03 5.798902e+31 1.996073e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.329400e+06 1.613000e+03 1.991361e+03 5.717013e+31 2.000887e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.358300e+06 1.613000e+03 2.000504e+03 5.652675e+31 2.003787e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.387200e+06 1.613000e+03 2.009689e+03 5.438149e+31 1.955045e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.416100e+06 1.613000e+03 2.018917e+03 5.236390e+31 1.918472e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.445000e+06 1.613000e+03 2.028186e+03 5.040030e+31 1.892205e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.473900e+06 1.613000e+03 2.037499e+03 4.682540e+31 1.846185e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.502800e+06 1.613000e+03 2.046854e+03 4.297005e+31 1.804295e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.531700e+06 1.613000e+03 2.056252e+03 4.046162e+31 1.779688e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.560600e+06 1.613000e+03 2.065693e+03 3.820175e+31 1.819427e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.589500e+06 1.613000e+03 2.075177e+03 3.833467e+31 1.760640e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.618400e+06 1.613000e+03 2.084705e+03 3.741295e+31 1.812914e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.647300e+06 1.613000e+03 2.094277e+03 3.583802e+31 1.722854e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.676200e+06 1.613000e+03 2.103893e+03 3.466924e+31 1.719269e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.705100e+06 1.613000e+03 2.113553e+03 3.363342e+31 1.709332e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.734000e+06 1.613000e+03 2.123257e+03 3.256073e+31 1.659905e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.762900e+06 1.613000e+03 2.133006e+03 3.150760e+31 1.670262e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.791800e+06 1.613000e+03 2.142799e+03 3.041003e+31 1.628005e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.820700e+06 1.613000e+03 2.152638e+03 2.900493e+31 1.589826e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.849600e+06 1.613000e+03 2.162522e+03 2.859733e+31 1.598318e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.878500e+06 1.613000e+03 2.172451e+03 2.725831e+31 1.552201e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.907400e+06 1.613000e+03 2.182425e+03 2.633890e+31 1.528196e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.936300e+06 1.613000e+03 2.192446e+03 2.575130e+31 1.553362e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.965200e+06 1.613000e+03 2.202512e+03 2.462155e+31 1.480507e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 1.994100e+06 1.613000e+03 2.212625e+03 2.366633e+31 1.482779e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.023000e+06 1.613000e+03 2.222784e+03 2.316757e+31 1.455373e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.051900e+06 1.613000e+03 2.232990e+03 2.200575e+31 1.418892e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.080800e+06 1.613000e+03 2.243242e+03 2.149435e+31 1.415761e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.109700e+06 1.613000e+03 2.253542e+03 2.081031e+31 1.420736e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.138600e+06 1.613000e+03 2.263889e+03 2.004874e+31 1.388595e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.167500e+06 1.613000e+03 2.274284e+03 1.937995e+31 1.346128e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.196400e+06 1.613000e+03 2.284726e+03 1.846569e+31 1.321736e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.225300e+06 1.613000e+03 2.295216e+03 1.793075e+31 1.320664e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.254200e+06 1.613000e+03 2.305754e+03 1.724264e+31 1.320965e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.283100e+06 1.613000e+03 2.316341e+03 1.642310e+31 1.263760e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.312000e+06 1.613000e+03 2.326976e+03 1.594610e+31 1.261995e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.340900e+06 1.613000e+03 2.337660e+03 1.543635e+31 1.253098e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.369800e+06 1.613000e+03 2.348394e+03 1.497064e+31 1.220041e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.398700e+06 1.613000e+03 2.359176e+03 1.432517e+31 1.171291e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.427600e+06 1.613000e+03 2.370008e+03 1.385378e+31 1.210629e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.456500e+06 1.613000e+03 2.380890e+03 1.341869e+31 1.285574e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.485400e+06 1.613000e+03 2.391822e+03 1.290311e+31 1.277510e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.514300e+06 1.613000e+03 2.402803e+03 1.282866e+31 1.064289e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.543200e+06 1.613000e+03 2.413836e+03 1.458402e+31 6.599404e+14 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.572100e+06 1.613000e+03 2.424919e+03 1.420152e+31 6.707581e+14 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.601000e+06 1.613000e+03 2.436053e+03 1.641006e+31 1.795452e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.629900e+06 1.613000e+03 2.447238e+03 4.956763e+31 4.733427e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.658800e+06 1.613000e+03 2.458474e+03 4.071948e+31 4.066132e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.687700e+06 1.613000e+03 2.469762e+03 9.412446e+31 4.216810e+14 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.716600e+06 1.613000e+03 2.481102e+03 6.365493e+32 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.745500e+06 1.613000e+03 2.492493e+03 3.779807e+32 2.281238e+14 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.774400e+06 1.613000e+03 2.503938e+03 1.375793e+33 2.451081e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.803300e+06 1.613000e+03 2.515434e+03 2.322047e+33 3.341896e+16 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.832200e+06 1.613000e+03 2.526984e+03 1.164418e+33 5.762237e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
+0.000000e+00 2.861100e+06 1.613000e+03 2.538586e+03 6.954306e+32 1.424040e+15 -1.000000e+00 -1.000000e+00 1.000000e+00
Modified: branches/active_compositions/tests/adiabatic_conditions/screen-output
===================================================================
--- branches/active_compositions/tests/adiabatic_conditions/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/adiabatic_conditions/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -2,9 +2,9 @@
Number of degrees of freedom: 40,836 (25,090+3,201+12,545)
*** Timestep 0: t=0 seconds
- Solving temperature system... 0 iterations.
+ Solving temperature system... 1 iterations.
Rebuilding Stokes preconditioner...
- Solving Stokes system... 30+2 iterations.
+ Solving Stokes system... 30+3 iterations.
Postprocessing:
@@ -20,27 +20,27 @@
reference_cp: 1250
reference_thermal_diffusivity: 2.42424e-13
- Writing graphical output: output_adiabatic_conditions/solution-00000
- RMS, max velocity: 7.1e+08 m/s, 4.38e+09 m/s
+ Writing graphical output: output-adiabatic_conditions/solution-00000
+ RMS, max velocity: 7.09e+08 m/s, 4.38e+09 m/s
Temperature min/avg/max: 1613 K, 1613 K, 1613 K
- Heat fluxes through boundary parts: 1.309e-17 W, 1.453e-17 W, 4.979e-18 W, 7.033e-18 W
- Writing depth average output_adiabatic_conditions/depthaverage.plt
+ Heat fluxes through boundary parts: 3.628e-17 W, 6.092e-17 W, -2.625e-17 W, 2.246e-17 W
+ Writing depth average output-adiabatic_conditions/depthaverage.plt
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 48.7s | |
+| Total wallclock time elapsed since start | 39.2s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 5.84s | 12% |
-| Assemble temperature system | 1 | 13.4s | 27% |
-| Build Stokes preconditioner | 1 | 3.74s | 7.7% |
-| Build temperature preconditioner| 1 | 0.0605s | 0.12% |
-| Solve Stokes system | 1 | 1.01s | 2.1% |
-| Solve temperature system | 1 | 0.0204s | 0.042% |
-| Initialization | 2 | 1.56s | 3.2% |
-| Postprocessing | 1 | 19.5s | 40% |
-| Setup dof systems | 1 | 2.63s | 5.4% |
+| Assemble Stokes system | 1 | 2.19s | 5.6% |
+| Assemble temperature system | 1 | 5.58s | 14% |
+| Build Stokes preconditioner | 1 | 1.32s | 3.4% |
+| Build temperature preconditioner| 1 | 0.0928s | 0.24% |
+| Solve Stokes system | 1 | 1.55s | 3.9% |
+| Solve temperature system | 1 | 0.153s | 0.39% |
+| Initialization | 2 | 1.12s | 2.9% |
+| Postprocessing | 1 | 18s | 46% |
+| Setup dof systems | 1 | 7.85s | 20% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/adiabatic_conditions/statistics
===================================================================
--- branches/active_compositions/tests/adiabatic_conditions/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/adiabatic_conditions/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,18 +3,19 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-# 9: Visualization file name
-# 10: RMS velocity (m/s)
-# 11: Max. velocity (m/s)
-# 12: Minimal temperature (K)
-# 13: Average temperature (K)
-# 14: Maximal temperature (K)
-# 15: Average nondimensional temperature (K)
-# 16: Outward heat flux through boundary with indicator 0 (W)
-# 17: Outward heat flux through boundary with indicator 1 (W)
-# 18: Outward heat flux through boundary with indicator 2 (W)
-# 19: Outward heat flux through boundary with indicator 3 (W)
-0 0.0000e+00 3072 28291 12545 0 32 7.6881e-06 output_adiabatic_conditions/solution-00000 7.09961542e+08 4.38438852e+09 1.61300000e+03 1.61300000e+03 1.61300000e+03 1.00000000e+00 1.30856102e-17 1.45259708e-17 4.97853591e-18 7.03261716e-18
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+# 10: Visualization file name
+# 11: RMS velocity (m/s)
+# 12: Max. velocity (m/s)
+# 13: Minimal temperature (K)
+# 14: Average temperature (K)
+# 15: Maximal temperature (K)
+# 16: Average nondimensional temperature (K)
+# 17: Outward heat flux through boundary with indicator 0 (W)
+# 18: Outward heat flux through boundary with indicator 1 (W)
+# 19: Outward heat flux through boundary with indicator 2 (W)
+# 20: Outward heat flux through boundary with indicator 3 (W)
+0 0.0000e+00 3072 28291 12545 0 1 33 7.6904e-06 output-adiabatic_conditions/solution-00000 7.09365756e+08 4.38331430e+09 1.61300000e+03 1.61300000e+03 1.61300000e+03 1.00000000e+00 3.62797575e-17 6.09249752e-17 -2.62504621e-17 2.24556340e-17
Modified: branches/active_compositions/tests/box-first-time-step/screen-output
===================================================================
--- branches/active_compositions/tests/box-first-time-step/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/box-first-time-step/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -2,7 +2,7 @@
Number of degrees of freedom: 13,764 (8,450+1,089+4,225)
*** Timestep 0: t=0 seconds
- Solving temperature system... 0 iterations.
+ Solving temperature system... 1 iterations.
Rebuilding Stokes preconditioner...
Solving Stokes system... 21 iterations.
@@ -21,25 +21,25 @@
reference_thermal_diffusivity: 8e-10
Writing graphical output: output-box-first-time-step/solution-00000
- RMS, max velocity: 9.06e-09 m/s, 3.25e-08 m/s
+ RMS, max velocity: 9.07e-09 m/s, 3.25e-08 m/s
Temperature min/avg/max: 0 K, 1.035 K, 1.1 K
Heat fluxes through boundary parts: 1.668e-07 W, 8.017e-05 W, 2.402e-07 W, 2.402e-07 W
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.906s | |
+| Total wallclock time elapsed since start | 12s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0401s | 4.4% |
-| Assemble temperature system | 1 | 0.0653s | 7.2% |
-| Build Stokes preconditioner | 1 | 0.0665s | 7.3% |
-| Build temperature preconditioner| 1 | 0.0181s | 2% |
-| Solve Stokes system | 1 | 0.0927s | 10% |
-| Solve temperature system | 1 | 0.00163s | 0.18% |
-| Initialization | 2 | 0.03s | 3.3% |
-| Postprocessing | 1 | 0.463s | 51% |
-| Setup dof systems | 1 | 0.102s | 11% |
+| Assemble Stokes system | 1 | 0.87s | 7.2% |
+| Assemble temperature system | 1 | 2.19s | 18% |
+| Build Stokes preconditioner | 1 | 0.631s | 5.3% |
+| Build temperature preconditioner| 1 | 0.0313s | 0.26% |
+| Solve Stokes system | 1 | 0.261s | 2.2% |
+| Solve temperature system | 1 | 0.0394s | 0.33% |
+| Initialization | 2 | 0.16s | 1.3% |
+| Postprocessing | 1 | 4.84s | 40% |
+| Setup dof systems | 1 | 2.2s | 18% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/box-first-time-step/statistics
===================================================================
--- branches/active_compositions/tests/box-first-time-step/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/box-first-time-step/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,18 +3,19 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-# 9: Visualization file name
-# 10: RMS velocity (m/s)
-# 11: Max. velocity (m/s)
-# 12: Minimal temperature (K)
-# 13: Average temperature (K)
-# 14: Maximal temperature (K)
-# 15: Average nondimensional temperature (K)
-# 16: Outward heat flux through boundary with indicator 0
-# 17: Outward heat flux through boundary with indicator 1
-# 18: Outward heat flux through boundary with indicator 2
-# 19: Outward heat flux through boundary with indicator 3
-0 0.0000e+00 1024 9539 4225 0 21 4.7533e+05 output-box-first-time-step/solution-00000 9.06251153e-09 3.24776919e-08 0.00000000e+00 1.03532014e+00 1.10000000e+00 1.03532014e+00 1.66800424e-07 8.01668004e-05 2.40192611e-07 2.40192611e-07
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+# 10: Visualization file name
+# 11: RMS velocity (m/s)
+# 12: Max. velocity (m/s)
+# 13: Minimal temperature (K)
+# 14: Average temperature (K)
+# 15: Maximal temperature (K)
+# 16: Average nondimensional temperature (K)
+# 17: Outward heat flux through boundary with indicator 0 (W)
+# 18: Outward heat flux through boundary with indicator 1 (W)
+# 19: Outward heat flux through boundary with indicator 2 (W)
+# 20: Outward heat flux through boundary with indicator 3 (W)
+0 0.0000e+00 1024 9539 4225 0 1 21 4.7507e+05 output-box-first-time-step/solution-00000 9.06752486e-09 3.24958188e-08 0.00000000e+00 1.03532014e+00 1.10000000e+00 1.03532014e+00 1.66800424e-07 8.01668004e-05 2.40192611e-07 2.40192611e-07
Modified: branches/active_compositions/tests/box-first-time-step-alternate-bc/screen-output
===================================================================
--- branches/active_compositions/tests/box-first-time-step-alternate-bc/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/box-first-time-step-alternate-bc/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -2,7 +2,7 @@
Number of degrees of freedom: 13,764 (8,450+1,089+4,225)
*** Timestep 0: t=0 seconds
- Solving temperature system... 0 iterations.
+ Solving temperature system... 1 iterations.
Rebuilding Stokes preconditioner...
Solving Stokes system... 21 iterations.
@@ -21,25 +21,25 @@
reference_thermal_diffusivity: 8e-10
Writing graphical output: output-box-first-time-step-alternate-bc/solution-00000
- RMS, max velocity: 9.06e-09 m/s, 3.25e-08 m/s
+ RMS, max velocity: 9.07e-09 m/s, 3.25e-08 m/s
Temperature min/avg/max: 0 K, 1.035 K, 1.1 K
Heat fluxes through boundary parts: 1.668e-07 W, 8.017e-05 W, 2.402e-07 W, 2.402e-07 W
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.906s | |
+| Total wallclock time elapsed since start | 11.1s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0433s | 4.8% |
-| Assemble temperature system | 1 | 0.0616s | 6.8% |
-| Build Stokes preconditioner | 1 | 0.0674s | 7.4% |
-| Build temperature preconditioner| 1 | 0.0189s | 2.1% |
-| Solve Stokes system | 1 | 0.0968s | 11% |
-| Solve temperature system | 1 | 0.00167s | 0.18% |
-| Initialization | 2 | 0.0301s | 3.3% |
-| Postprocessing | 1 | 0.453s | 50% |
-| Setup dof systems | 1 | 0.103s | 11% |
+| Assemble Stokes system | 1 | 0.908s | 8.2% |
+| Assemble temperature system | 1 | 1.89s | 17% |
+| Build Stokes preconditioner | 1 | 0.783s | 7.1% |
+| Build temperature preconditioner| 1 | 0.0595s | 0.54% |
+| Solve Stokes system | 1 | 0.255s | 2.3% |
+| Solve temperature system | 1 | 0.0591s | 0.53% |
+| Initialization | 2 | 0.19s | 1.7% |
+| Postprocessing | 1 | 4.42s | 40% |
+| Setup dof systems | 1 | 1.46s | 13% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/box-first-time-step-alternate-bc/statistics
===================================================================
--- branches/active_compositions/tests/box-first-time-step-alternate-bc/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/box-first-time-step-alternate-bc/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,18 +3,19 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-# 9: Visualization file name
-# 10: RMS velocity (m/s)
-# 11: Max. velocity (m/s)
-# 12: Minimal temperature (K)
-# 13: Average temperature (K)
-# 14: Maximal temperature (K)
-# 15: Average nondimensional temperature (K)
-# 16: Outward heat flux through boundary with indicator 0
-# 17: Outward heat flux through boundary with indicator 1
-# 18: Outward heat flux through boundary with indicator 2
-# 19: Outward heat flux through boundary with indicator 3
-0 0.0000e+00 1024 9539 4225 0 21 4.7533e+05 output-box-first-time-step-alternate-bc/solution-00000 9.06251153e-09 3.24776919e-08 0.00000000e+00 1.03532014e+00 1.10000000e+00 1.03532014e+00 1.66800424e-07 8.01668004e-05 2.40192611e-07 2.40192611e-07
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+# 10: Visualization file name
+# 11: RMS velocity (m/s)
+# 12: Max. velocity (m/s)
+# 13: Minimal temperature (K)
+# 14: Average temperature (K)
+# 15: Maximal temperature (K)
+# 16: Average nondimensional temperature (K)
+# 17: Outward heat flux through boundary with indicator 0 (W)
+# 18: Outward heat flux through boundary with indicator 1 (W)
+# 19: Outward heat flux through boundary with indicator 2 (W)
+# 20: Outward heat flux through boundary with indicator 3 (W)
+0 0.0000e+00 1024 9539 4225 0 1 21 4.7507e+05 output-box-first-time-step-alternate-bc/solution-00000 9.06752486e-09 3.24958188e-08 0.00000000e+00 1.03532014e+00 1.10000000e+00 1.03532014e+00 1.66800424e-07 8.01668004e-05 2.40192611e-07 2.40192611e-07
Modified: branches/active_compositions/tests/conservative_with_mpi/screen-output
===================================================================
--- branches/active_compositions/tests/conservative_with_mpi/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/conservative_with_mpi/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -4,25 +4,25 @@
*** Timestep 0: t=0 years
Solving temperature system... 0 iterations.
Rebuilding Stokes preconditioner...
- Solving Stokes system... 30+3 iterations.
+ Solving Stokes system... 30+2 iterations.
Postprocessing:
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.132s | |
+| Total wallclock time elapsed since start | 1.04s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.00596s | 4.5% |
-| Assemble temperature system | 1 | 0.027s | 21% |
-| Build Stokes preconditioner | 1 | 0.0121s | 9.2% |
-| Build temperature preconditioner| 1 | 0.00125s | 0.95% |
-| Solve Stokes system | 1 | 0.0162s | 12% |
-| Solve temperature system | 1 | 0.000857s | 0.65% |
-| Initialization | 2 | 0.0403s | 31% |
-| Postprocessing | 1 | 0.000157s | 0.12% |
-| Setup dof systems | 1 | 0.0114s | 8.6% |
+| Assemble Stokes system | 1 | 0.0775s | 7.5% |
+| Assemble temperature system | 1 | 0.401s | 39% |
+| Build Stokes preconditioner | 1 | 0.113s | 11% |
+| Build temperature preconditioner| 1 | 0.00113s | 0.11% |
+| Solve Stokes system | 1 | 0.0348s | 3.4% |
+| Solve temperature system | 1 | 0.00149s | 0.14% |
+| Initialization | 2 | 0.0834s | 8% |
+| Postprocessing | 1 | 0.00026s | 0.025% |
+| Setup dof systems | 1 | 0.23s | 22% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/conservative_with_mpi/statistics
===================================================================
--- branches/active_compositions/tests/conservative_with_mpi/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/conservative_with_mpi/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (years)
-0 0.0000e+00 16 210 81 0 33 1.1317e-06
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (years)
+0 0.0000e+00 16 210 81 0 0 32 1.1317e-06
Modified: branches/active_compositions/tests/graphical_output/screen-output
===================================================================
--- branches/active_compositions/tests/graphical_output/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/graphical_output/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -13,17 +13,18 @@
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.308s | |
+| Total wallclock time elapsed since start | 1.02s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0194s | 6.3% |
-| Assemble temperature system | 1 | 0.0892s | 29% |
-| Build Stokes preconditioner | 1 | 0.0217s | 7% |
-| Build temperature preconditioner| 1 | 0.000785s | 0.26% |
-| Solve Stokes system | 1 | 0.0132s | 4.3% |
-| Solve temperature system | 1 | 0.000484s | 0.16% |
-| Postprocessing | 1 | 0.0825s | 27% |
-| Setup dof systems | 1 | 0.033s | 11% |
+| Assemble Stokes system | 1 | 0.0626s | 6.1% |
+| Assemble temperature system | 1 | 0.323s | 32% |
+| Build Stokes preconditioner | 1 | 0.102s | 10% |
+| Build temperature preconditioner| 1 | 0.00134s | 0.13% |
+| Solve Stokes system | 1 | 0.0336s | 3.3% |
+| Solve temperature system | 1 | 0.00111s | 0.11% |
+| Initialization | 2 | 0.0355s | 3.5% |
+| Postprocessing | 1 | 0.192s | 19% |
+| Setup dof systems | 1 | 0.211s | 21% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/graphical_output/statistics
===================================================================
--- branches/active_compositions/tests/graphical_output/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/graphical_output/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,8 +3,9 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-# 9: Visualization file name
-0 0.0000e+00 16 187 81 0 28 3.4287e+01 output-graphical_output/solution-00000
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+# 10: Visualization file name
+0 0.0000e+00 16 187 81 0 0 28 3.4287e+01 output-graphical_output/solution-00000
Modified: branches/active_compositions/tests/inclusion_2/screen-output
===================================================================
--- branches/active_compositions/tests/inclusion_2/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/inclusion_2/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -8,23 +8,23 @@
Postprocessing:
Writing graphical output: output-inclusion_2/solution-00000
- Errors u_L1, p_L1, u_L2, p_L2: 4.145860e-02, 5.044068e-01, 2.432442e-02, 3.912139e-01
+ Errors u_L1, p_L1, u_L2, p_L2: 4.145861e-02, 5.044066e-01, 2.432442e-02, 3.912138e-01
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.125s | |
+| Total wallclock time elapsed since start | 0.927s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.00429s | 3.4% |
-| Assemble temperature system | 1 | 0.0229s | 18% |
-| Build Stokes preconditioner | 1 | 0.0102s | 8.1% |
-| Build temperature preconditioner| 1 | 0.00119s | 0.95% |
-| Solve Stokes system | 1 | 0.0286s | 23% |
-| Solve temperature system | 1 | 0.00047s | 0.37% |
-| Initialization | 2 | 0.0226s | 18% |
-| Postprocessing | 1 | 0.015s | 12% |
-| Setup dof systems | 1 | 0.00741s | 5.9% |
+| Assemble Stokes system | 1 | 0.0767s | 8.3% |
+| Assemble temperature system | 1 | 0.334s | 36% |
+| Build Stokes preconditioner | 1 | 0.0745s | 8% |
+| Build temperature preconditioner| 1 | 0.00128s | 0.14% |
+| Solve Stokes system | 1 | 0.0475s | 5.1% |
+| Solve temperature system | 1 | 0.00115s | 0.12% |
+| Initialization | 2 | 0.0353s | 3.8% |
+| Postprocessing | 1 | 0.211s | 23% |
+| Setup dof systems | 1 | 0.0608s | 6.6% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/inclusion_2/statistics
===================================================================
--- branches/active_compositions/tests/inclusion_2/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/inclusion_2/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,8 +3,9 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-# 9: Visualization file name
-0 0.0000e+00 16 187 81 0 39 1.7685e-01 output-inclusion_2/solution-00000
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+# 10: Visualization file name
+0 0.0000e+00 16 187 81 0 0 39 1.7685e-01 output-inclusion_2/solution-00000
Modified: branches/active_compositions/tests/inclusion_4/screen-output
===================================================================
--- branches/active_compositions/tests/inclusion_4/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/inclusion_4/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -4,27 +4,27 @@
*** Timestep 0: t=0 seconds
Solving temperature system... 0 iterations.
Rebuilding Stokes preconditioner...
- Solving Stokes system... 30+10 iterations.
+ Solving Stokes system... 30+11 iterations.
Postprocessing:
Writing graphical output: output-inclusion_4/solution-00000
- Errors u_L1, p_L1, u_L2, p_L2: 1.101014e-01, 1.242409e+00, 5.763692e-02, 1.475856e+00
+ Errors u_L1, p_L1, u_L2, p_L2: 1.101014e-01, 1.242403e+00, 5.763690e-02, 1.475836e+00
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.436s | |
+| Total wallclock time elapsed since start | 3.11s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0135s | 3.1% |
-| Assemble temperature system | 1 | 0.0324s | 7.4% |
-| Build Stokes preconditioner | 1 | 0.0258s | 5.9% |
-| Build temperature preconditioner| 1 | 0.00544s | 1.2% |
-| Solve Stokes system | 1 | 0.176s | 40% |
-| Solve temperature system | 1 | 0.000785s | 0.18% |
-| Initialization | 2 | 0.0252s | 5.8% |
-| Postprocessing | 1 | 0.11s | 25% |
-| Setup dof systems | 1 | 0.0295s | 6.8% |
+| Assemble Stokes system | 1 | 0.217s | 7% |
+| Assemble temperature system | 1 | 0.692s | 22% |
+| Build Stokes preconditioner | 1 | 0.174s | 5.6% |
+| Build temperature preconditioner| 1 | 0.00533s | 0.17% |
+| Solve Stokes system | 1 | 0.256s | 8.3% |
+| Solve temperature system | 1 | 0.0053s | 0.17% |
+| Initialization | 2 | 0.0767s | 2.5% |
+| Postprocessing | 1 | 1.02s | 33% |
+| Setup dof systems | 1 | 0.348s | 11% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/inclusion_4/statistics
===================================================================
--- branches/active_compositions/tests/inclusion_4/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/inclusion_4/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,8 +3,9 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-# 9: Visualization file name
-0 0.0000e+00 256 2467 1089 0 40 4.4212e-02 output-inclusion_4/solution-00000
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+# 10: Visualization file name
+0 0.0000e+00 256 2467 1089 0 0 41 4.4212e-02 output-inclusion_4/solution-00000
Modified: branches/active_compositions/tests/inclusion_adaptive/screen-output
===================================================================
--- branches/active_compositions/tests/inclusion_adaptive/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/inclusion_adaptive/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -8,10 +8,10 @@
Postprocessing:
Writing graphical output: output-inclusion_adaptive/solution-00000
- Errors u_L1, p_L1, u_L2, p_L2: 1.728441e-01, 1.486559e+00, 8.838171e-02, 1.109955e+00
+ Errors u_L1, p_L1, u_L2, p_L2: 1.728441e-01, 1.486558e+00, 8.838170e-02, 1.109955e+00
-Number of active cells: 94 (on 5 levels)
-Number of degrees of freedom: 1,442 (882+119+441)
+Number of active cells: 91 (on 5 levels)
+Number of degrees of freedom: 1,403 (858+116+429)
*** Timestep 0: t=0 seconds
Solving temperature system... 0 iterations.
@@ -20,19 +20,19 @@
Postprocessing:
Writing graphical output: output-inclusion_adaptive/solution-00001
- Errors u_L1, p_L1, u_L2, p_L2: 1.197106e-01, 1.286040e+00, 6.230476e-02, 1.287985e+00
+ Errors u_L1, p_L1, u_L2, p_L2: 1.242982e-01, 1.255978e+00, 6.452254e-02, 1.175021e+00
-Number of active cells: 148 (on 6 levels)
-Number of degrees of freedom: 2,326 (1,426+187+713)
+Number of active cells: 145 (on 6 levels)
+Number of degrees of freedom: 2,287 (1,402+184+701)
*** Timestep 0: t=0 seconds
Solving temperature system... 0 iterations.
Rebuilding Stokes preconditioner...
- Solving Stokes system... 30+15 iterations.
+ Solving Stokes system... 30+13 iterations.
Postprocessing:
Writing graphical output: output-inclusion_adaptive/solution-00002
- Errors u_L1, p_L1, u_L2, p_L2: 6.243732e-02, 6.581966e-01, 3.272050e-02, 7.599117e-01
+ Errors u_L1, p_L1, u_L2, p_L2: 7.327782e-02, 6.591830e-01, 3.820852e-02, 5.526678e-01
Number of active cells: 229 (on 7 levels)
Number of degrees of freedom: 3,509 (2,154+278+1,077)
@@ -44,10 +44,10 @@
Postprocessing:
Writing graphical output: output-inclusion_adaptive/solution-00003
- Errors u_L1, p_L1, u_L2, p_L2: 2.996881e-02, 5.410807e-01, 1.591665e-02, 1.177301e+00
+ Errors u_L1, p_L1, u_L2, p_L2: 3.200656e-02, 5.565040e-01, 1.704239e-02, 1.142766e+00
-Number of active cells: 340 (on 8 levels)
-Number of degrees of freedom: 5,264 (3,234+413+1,617)
+Number of active cells: 325 (on 8 levels)
+Number of degrees of freedom: 5,082 (3,122+399+1,561)
*** Timestep 0: t=0 seconds
Solving temperature system... 0 iterations.
@@ -56,37 +56,37 @@
Postprocessing:
Writing graphical output: output-inclusion_adaptive/solution-00004
- Errors u_L1, p_L1, u_L2, p_L2: 1.926539e-02, 4.014865e-01, 1.030092e-02, 9.626832e-01
+ Errors u_L1, p_L1, u_L2, p_L2: 2.209050e-02, 4.386382e-01, 1.174566e-02, 9.889714e-01
-Number of active cells: 502 (on 8 levels)
-Number of degrees of freedom: 7,734 (4,754+603+2,377)
+Number of active cells: 505 (on 8 levels)
+Number of degrees of freedom: 7,812 (4,802+609+2,401)
*** Timestep 0: t=0 seconds
Solving temperature system... 0 iterations.
Rebuilding Stokes preconditioner...
- Solving Stokes system... 30+13 iterations.
+ Solving Stokes system... 30+12 iterations.
Postprocessing:
Writing graphical output: output-inclusion_adaptive/solution-00005
- Errors u_L1, p_L1, u_L2, p_L2: 1.233480e-02, 2.860685e-01, 6.633396e-03, 8.115277e-01
+ Errors u_L1, p_L1, u_L2, p_L2: 1.259834e-02, 3.095804e-01, 6.762907e-03, 8.868306e-01
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 2.45s | |
+| Total wallclock time elapsed since start | 25.5s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 6 | 0.0863s | 3.5% |
-| Assemble temperature system | 6 | 0.183s | 7.5% |
-| Build Stokes preconditioner | 6 | 0.139s | 5.7% |
-| Build temperature preconditioner| 6 | 0.0261s | 1.1% |
-| Solve Stokes system | 6 | 1.31s | 54% |
-| Solve temperature system | 6 | 0.00465s | 0.19% |
-| Initialization | 7 | 0.0414s | 1.7% |
-| Postprocessing | 6 | 0.281s | 11% |
-| Refine mesh structure, part 1 | 5 | 0.139s | 5.7% |
-| Refine mesh structure, part 2 | 5 | 0.00496s | 0.2% |
-| Setup dof systems | 6 | 0.201s | 8.2% |
+| Assemble Stokes system | 6 | 2.24s | 8.8% |
+| Assemble temperature system | 6 | 4.46s | 18% |
+| Build Stokes preconditioner | 6 | 1.86s | 7.3% |
+| Build temperature preconditioner| 6 | 0.0253s | 0.099% |
+| Solve Stokes system | 6 | 3.04s | 12% |
+| Solve temperature system | 6 | 0.0567s | 0.22% |
+| Initialization | 7 | 0.642s | 2.5% |
+| Postprocessing | 6 | 4.72s | 19% |
+| Refine mesh structure, part 1 | 5 | 2.12s | 8.3% |
+| Refine mesh structure, part 2 | 5 | 0.0842s | 0.33% |
+| Setup dof systems | 6 | 4.18s | 16% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/inclusion_adaptive/statistics
===================================================================
--- branches/active_compositions/tests/inclusion_adaptive/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/inclusion_adaptive/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,13 +3,14 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-# 9: Visualization file name
-0 0.0000e+00 64 659 289 0 36 8.8424e-02 output-inclusion_adaptive/solution-00000
-0 0.0000e+00 94 1001 441 0 42 8.8424e-02 output-inclusion_adaptive/solution-00001
-0 0.0000e+00 148 1613 713 0 45 8.7135e-02 output-inclusion_adaptive/solution-00002
-0 0.0000e+00 229 2432 1077 0 44 7.5246e-02 output-inclusion_adaptive/solution-00003
-0 0.0000e+00 340 3647 1617 0 43 6.3933e-02 output-inclusion_adaptive/solution-00004
-0 0.0000e+00 502 5357 2377 0 43 4.5800e-02 output-inclusion_adaptive/solution-00005
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+# 10: Visualization file name
+0 0.0000e+00 64 659 289 0 0 36 8.8424e-02 output-inclusion_adaptive/solution-00000
+0 0.0000e+00 91 974 429 0 0 42 8.8424e-02 output-inclusion_adaptive/solution-00001
+0 0.0000e+00 145 1586 701 0 0 43 8.6708e-02 output-inclusion_adaptive/solution-00002
+0 0.0000e+00 229 2432 1077 0 0 44 7.5177e-02 output-inclusion_adaptive/solution-00003
+0 0.0000e+00 325 3521 1561 0 0 43 6.3999e-02 output-inclusion_adaptive/solution-00004
+0 0.0000e+00 505 5411 2401 0 0 42 4.5840e-02 output-inclusion_adaptive/solution-00005
Modified: branches/active_compositions/tests/non_conservative_with_mpi/screen-output
===================================================================
--- branches/active_compositions/tests/non_conservative_with_mpi/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/non_conservative_with_mpi/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -11,18 +11,18 @@
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 1.44s | |
+| Total wallclock time elapsed since start | 0.73s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.124s | 8.6% |
-| Assemble temperature system | 1 | 0.496s | 34% |
-| Build Stokes preconditioner | 1 | 0.137s | 9.5% |
-| Build temperature preconditioner| 1 | 0.0211s | 1.5% |
-| Solve Stokes system | 1 | 0.0484s | 3.4% |
-| Solve temperature system | 1 | 0.00125s | 0.087% |
-| Initialization | 2 | 0.17s | 12% |
-| Postprocessing | 1 | 0.000486s | 0.034% |
-| Setup dof systems | 1 | 0.278s | 19% |
+| Assemble Stokes system | 1 | 0.0992s | 14% |
+| Assemble temperature system | 1 | 0.338s | 46% |
+| Build Stokes preconditioner | 1 | 0.0858s | 12% |
+| Build temperature preconditioner| 1 | 0.00116s | 0.16% |
+| Solve Stokes system | 1 | 0.0299s | 4.1% |
+| Solve temperature system | 1 | 0.00146s | 0.2% |
+| Initialization | 2 | 0.039s | 5.3% |
+| Postprocessing | 1 | 0.000244s | 0.033% |
+| Setup dof systems | 1 | 0.0834s | 11% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/non_conservative_with_mpi/statistics
===================================================================
--- branches/active_compositions/tests/non_conservative_with_mpi/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/non_conservative_with_mpi/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (years)
-0 0.0000e+00 16 187 81 0 28 1.0865e-06
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (years)
+0 0.0000e+00 16 187 81 0 0 28 1.0865e-06
Modified: branches/active_compositions/tests/passive_comp/depthaverage.plt
===================================================================
--- branches/active_compositions/tests/passive_comp/depthaverage.plt 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/passive_comp/depthaverage.plt 2012-10-18 20:18:18 UTC (rev 1286)
@@ -1,304 +1,304 @@
# time, depth, avg T, avg C_1, adiabatic T, velocity magnitude, avg sinking velocity, avg Vs, avg Vp, avg viscosity
-0.000000e+00 0.000000e+00 0.000000e+00 5.000000e-01 0.000000e+00 2.012118e+02 1.187016e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.855000e+04 0.000000e+00 5.000000e-01 0.000000e+00 1.897418e+02 2.536934e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 5.710000e+04 0.000000e+00 5.000000e-01 0.000000e+00 1.993509e+02 3.214750e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 8.565000e+04 0.000000e+00 5.000000e-01 0.000000e+00 1.924846e+02 4.159435e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.142000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.884987e+02 4.580267e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.427500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.786890e+02 3.310375e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.713000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.861899e+02 4.396974e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.998500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.816332e+02 3.510838e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.284000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.775940e+02 1.943937e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.569500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.689824e+02 1.174468e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.855000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.745266e+02 2.606016e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 0.000000e+00 0.000000e+00 5.000000e-01 0.000000e+00 2.012118e+02 1.187018e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.855000e+04 0.000000e+00 5.000000e-01 0.000000e+00 1.897418e+02 2.536941e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 5.710000e+04 0.000000e+00 5.000000e-01 0.000000e+00 1.993509e+02 3.214753e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 8.565000e+04 0.000000e+00 5.000000e-01 0.000000e+00 1.924846e+02 4.159441e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.142000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.884987e+02 4.580274e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.427500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.786890e+02 3.310390e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.713000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.861899e+02 4.396979e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.998500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.816332e+02 3.510846e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.284000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.775940e+02 1.943944e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.569500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.689824e+02 1.174522e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.855000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.745266e+02 2.606044e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
0.000000e+00 3.140500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.716378e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
0.000000e+00 3.426000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.660466e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
0.000000e+00 3.711500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.653715e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
0.000000e+00 3.997000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.639405e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 4.282500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.614007e+02 3.197444e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 4.568000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.560390e+02 1.771588e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 4.853500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.566735e+02 3.580115e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 5.139000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.543210e+02 1.218454e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 5.424500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.518750e+02 2.870310e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 5.710000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.465781e+02 3.857780e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 4.282500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.614007e+02 3.197741e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 4.568000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.560390e+02 1.771596e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 4.853500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.566735e+02 3.580126e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 5.139000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.543210e+02 1.218456e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 5.424500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.518750e+02 2.870311e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 5.710000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.465781e+02 3.857779e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
0.000000e+00 5.995500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.479401e+02 3.808518e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
0.000000e+00 6.281000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.455619e+02 3.912991e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 6.566500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.423338e+02 3.470575e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 6.852000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.394083e+02 2.729165e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 6.566500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.423338e+02 3.470574e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 6.852000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.394083e+02 2.729163e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
0.000000e+00 7.137500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.391185e+02 1.801824e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 7.423000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.365503e+02 8.301008e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 7.708500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.320790e+02 5.540257e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 7.423000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.365503e+02 8.301015e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 7.708500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.320790e+02 5.540253e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
0.000000e+00 7.994000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.311070e+02 1.002646e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 8.279500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.291416e+02 1.101862e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 8.565000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.276230e+02 1.606873e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 8.279500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.291416e+02 1.101861e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 8.565000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.276230e+02 1.606872e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
0.000000e+00 8.850500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.236285e+02 1.353831e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 9.136000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.234168e+02 1.530943e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 9.421500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.214399e+02 1.378130e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 9.707000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.196474e+02 1.191817e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 9.992500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.154719e+02 4.189362e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.027800e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.159218e+02 4.391646e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.056350e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.140651e+02 1.132825e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 9.136000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.234168e+02 1.530942e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 9.421500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.214399e+02 1.378128e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 9.707000e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.196474e+02 1.191815e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 9.992500e+05 0.000000e+00 5.000000e-01 0.000000e+00 1.154719e+02 4.189356e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.027800e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.159218e+02 4.391631e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.056350e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.140651e+02 1.132819e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
0.000000e+00 1.084900e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.120144e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.113450e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.080349e+02 7.213622e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.142000e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.084907e+02 1.301575e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.170550e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.067114e+02 1.695531e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.199100e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.049824e+02 3.079848e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.227650e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.009258e+02 1.148141e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.256200e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.013853e+02 9.826697e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.284750e+06 0.000000e+00 5.000000e-01 0.000000e+00 9.968169e+01 1.158756e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.313300e+06 0.000000e+00 5.000000e-01 0.000000e+00 9.738458e+01 2.007671e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.341850e+06 0.000000e+00 5.000000e-01 0.000000e+00 9.594707e+01 1.571179e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.370400e+06 0.000000e+00 5.000000e-01 0.000000e+00 9.474175e+01 1.449613e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.398950e+06 0.000000e+00 5.000000e-01 0.000000e+00 9.298856e+01 1.147349e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.427500e+06 0.000000e+00 5.000000e-01 0.000000e+00 9.016104e+01 6.367200e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.456050e+06 0.000000e+00 5.000000e-01 0.000000e+00 8.959000e+01 6.117152e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.484600e+06 0.000000e+00 5.000000e-01 0.000000e+00 8.748786e+01 2.241943e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.513150e+06 0.000000e+00 5.000000e-01 0.000000e+00 8.424067e+01 2.452705e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.541700e+06 0.000000e+00 5.000000e-01 0.000000e+00 7.564109e+01 4.919469e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.570250e+06 0.000000e+00 5.000000e-01 0.000000e+00 7.434013e+01 7.337485e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.598800e+06 0.000000e+00 5.000000e-01 0.000000e+00 7.299828e+01 1.063164e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.627350e+06 0.000000e+00 5.000000e-01 0.000000e+00 7.161096e+01 1.347953e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.655900e+06 0.000000e+00 5.000000e-01 0.000000e+00 7.035508e+01 1.466773e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.684450e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.898270e+01 1.307139e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.713000e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.762137e+01 8.946918e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.741550e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.624960e+01 6.584273e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.770100e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.531208e+01 2.650382e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.798650e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.421609e+01 5.933294e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.827200e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.291830e+01 4.423956e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.855750e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.170267e+01 1.773382e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.884300e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.047019e+01 3.565837e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.912850e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.927047e+01 7.691540e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.941400e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.804984e+01 1.477485e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.969950e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.685619e+01 2.041132e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 1.998500e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.595186e+01 2.376373e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.027050e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.496441e+01 1.847350e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.055600e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.382243e+01 1.393246e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.084150e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.273088e+01 6.458029e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.112700e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.161442e+01 1.101014e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.113450e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.080349e+02 7.213523e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.142000e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.084907e+02 1.301568e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.170550e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.067114e+02 1.695520e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.199100e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.049824e+02 3.079826e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.227650e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.009258e+02 1.148134e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.256200e+06 0.000000e+00 5.000000e-01 0.000000e+00 1.013853e+02 9.826630e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.284750e+06 0.000000e+00 5.000000e-01 0.000000e+00 9.968170e+01 1.158748e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.313300e+06 0.000000e+00 5.000000e-01 0.000000e+00 9.738458e+01 2.007659e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.341850e+06 0.000000e+00 5.000000e-01 0.000000e+00 9.594707e+01 1.571167e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.370400e+06 0.000000e+00 5.000000e-01 0.000000e+00 9.474175e+01 1.449602e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.398950e+06 0.000000e+00 5.000000e-01 0.000000e+00 9.298857e+01 1.147338e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.427500e+06 0.000000e+00 5.000000e-01 0.000000e+00 9.016104e+01 6.367104e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.456050e+06 0.000000e+00 5.000000e-01 0.000000e+00 8.959000e+01 6.117076e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.484600e+06 0.000000e+00 5.000000e-01 0.000000e+00 8.748786e+01 2.241904e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.513150e+06 0.000000e+00 5.000000e-01 0.000000e+00 8.424067e+01 2.452667e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.541700e+06 0.000000e+00 5.000000e-01 0.000000e+00 7.564110e+01 4.919415e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.570250e+06 0.000000e+00 5.000000e-01 0.000000e+00 7.434013e+01 7.337413e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.598800e+06 0.000000e+00 5.000000e-01 0.000000e+00 7.299828e+01 1.063150e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.627350e+06 0.000000e+00 5.000000e-01 0.000000e+00 7.161096e+01 1.347935e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.655900e+06 0.000000e+00 5.000000e-01 0.000000e+00 7.035508e+01 1.466752e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.684450e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.898270e+01 1.307114e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.713000e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.762137e+01 8.946676e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.741550e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.624960e+01 6.584131e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.770100e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.531208e+01 2.650285e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.798650e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.421609e+01 5.932932e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.827200e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.291830e+01 4.423590e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.855750e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.170267e+01 1.773344e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.884300e+06 0.000000e+00 5.000000e-01 0.000000e+00 6.047019e+01 3.565743e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.912850e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.927047e+01 7.691366e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.941400e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.804984e+01 1.477462e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.969950e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.685619e+01 2.041104e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 1.998500e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.595186e+01 2.376345e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.027050e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.496441e+01 1.847323e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.055600e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.382243e+01 1.393220e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.084150e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.273088e+01 6.457878e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.112700e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.161442e+01 1.100977e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
0.000000e+00 2.141250e+06 0.000000e+00 5.000000e-01 0.000000e+00 5.052045e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.169800e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.926079e+01 8.947379e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.198350e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.807402e+01 8.298580e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.226900e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.735885e+01 4.050458e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.255450e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.641569e+01 1.005802e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.284000e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.537305e+01 1.612989e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.312550e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.437731e+01 1.978594e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.341100e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.344287e+01 2.432840e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.369650e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.249957e+01 2.257211e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.398200e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.146628e+01 1.484452e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.426750e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.047953e+01 5.908212e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.455300e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.953862e+01 6.588931e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.169800e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.926079e+01 8.946796e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.198350e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.807402e+01 8.297999e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.226900e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.735885e+01 4.050397e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.255450e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.641569e+01 1.005791e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.284000e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.537305e+01 1.612978e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.312550e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.437731e+01 1.978583e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.341100e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.344287e+01 2.432829e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.369650e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.249957e+01 2.257200e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.398200e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.146628e+01 1.484442e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.426750e+06 0.000000e+00 5.000000e-01 0.000000e+00 4.047953e+01 5.908138e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.455300e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.953862e+01 6.588069e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
0.000000e+00 2.483850e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.926663e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
0.000000e+00 2.512400e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.815811e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.540950e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.724872e+01 2.197559e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.569500e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.633305e+01 1.379029e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.598050e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.538326e+01 6.197270e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.626600e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.460461e+01 8.532277e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.655150e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.378657e+01 1.478432e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.683700e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.285148e+01 1.789126e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.712250e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.260658e+01 2.403297e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.740800e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.149024e+01 1.567468e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.769350e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.070152e+01 1.477675e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.797900e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.008072e+01 1.203530e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-0.000000e+00 2.826450e+06 0.000000e+00 5.000000e-01 0.000000e+00 2.916253e+01 4.725847e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.540950e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.724872e+01 2.197459e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.569500e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.633305e+01 1.379019e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.598050e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.538326e+01 6.197234e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.626600e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.460461e+01 8.532224e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.655150e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.378657e+01 1.478426e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.683700e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.285148e+01 1.789119e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.712250e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.260658e+01 2.403290e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.740800e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.149024e+01 1.567463e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.769350e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.070152e+01 1.477670e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.797900e+06 0.000000e+00 5.000000e-01 0.000000e+00 3.008072e+01 1.203527e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+0.000000e+00 2.826450e+06 0.000000e+00 5.000000e-01 0.000000e+00 2.916253e+01 4.725835e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 0.000000e+00 8.655388e-05 5.000000e-01 0.000000e+00 2.012118e+02 1.187016e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.855000e+04 2.703004e-04 5.000000e-01 0.000000e+00 1.897418e+02 2.536934e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 5.710000e+04 2.546403e-04 5.000000e-01 0.000000e+00 1.993509e+02 3.214750e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 8.565000e+04 4.303867e-04 5.000000e-01 0.000000e+00 1.924846e+02 4.159435e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.142000e+05 6.008735e-04 5.000000e-01 0.000000e+00 1.884987e+02 4.580267e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.427500e+05 7.793808e-04 5.000000e-01 0.000000e+00 1.786890e+02 3.310375e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.713000e+05 7.803644e-04 5.000000e-01 0.000000e+00 1.861899e+02 4.396974e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.998500e+05 9.371656e-04 5.000000e-01 0.000000e+00 1.816332e+02 3.510838e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.284000e+05 1.106615e-03 5.000000e-01 0.000000e+00 1.775940e+02 1.943937e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.569500e+05 1.239990e-03 5.000000e-01 0.000000e+00 1.689824e+02 1.174468e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.855000e+05 1.304476e-03 5.000000e-01 0.000000e+00 1.745266e+02 2.606016e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 0.000000e+00 8.655391e-05 5.000000e-01 0.000000e+00 2.012118e+02 1.187018e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.855000e+04 2.703006e-04 5.000000e-01 0.000000e+00 1.897418e+02 2.536941e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 5.710000e+04 2.546403e-04 5.000000e-01 0.000000e+00 1.993509e+02 3.214753e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 8.565000e+04 4.303868e-04 5.000000e-01 0.000000e+00 1.924846e+02 4.159441e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.142000e+05 6.008735e-04 5.000000e-01 0.000000e+00 1.884987e+02 4.580274e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.427500e+05 7.793809e-04 5.000000e-01 0.000000e+00 1.786890e+02 3.310390e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.713000e+05 7.803644e-04 5.000000e-01 0.000000e+00 1.861899e+02 4.396979e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.998500e+05 9.371657e-04 5.000000e-01 0.000000e+00 1.816332e+02 3.510846e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.284000e+05 1.106615e-03 5.000000e-01 0.000000e+00 1.775940e+02 1.943944e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.569500e+05 1.239990e-03 5.000000e-01 0.000000e+00 1.689824e+02 1.174522e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.855000e+05 1.304476e-03 5.000000e-01 0.000000e+00 1.745266e+02 2.606044e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
2.816248e+12 3.140500e+05 1.440487e-03 5.000000e-01 0.000000e+00 1.716378e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
2.816248e+12 3.426000e+05 1.581894e-03 5.000000e-01 0.000000e+00 1.660466e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
2.816248e+12 3.711500e+05 1.559042e-03 5.000000e-01 0.000000e+00 1.653715e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
2.816248e+12 3.997000e+05 1.484566e-03 5.000000e-01 0.000000e+00 1.639405e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 4.282500e+05 1.190403e-03 5.000000e-01 0.000000e+00 1.614007e+02 3.197444e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 4.568000e+05 9.339095e-04 5.000000e-01 0.000000e+00 1.560390e+02 1.771588e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 4.853500e+05 8.562536e-04 5.000000e-01 0.000000e+00 1.566735e+02 3.580115e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 5.139000e+05 6.838836e-04 5.000000e-01 0.000000e+00 1.543210e+02 1.218454e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 5.424500e+05 5.307964e-04 5.000000e-01 0.000000e+00 1.518750e+02 2.870310e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 5.710000e+05 4.070724e-04 5.000000e-01 0.000000e+00 1.465781e+02 3.857780e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 5.995500e+05 3.587907e-04 5.000000e-01 0.000000e+00 1.479401e+02 3.808518e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 6.281000e+05 2.844744e-04 5.000000e-01 0.000000e+00 1.455619e+02 3.912991e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 6.566500e+05 2.422570e-04 5.000000e-01 0.000000e+00 1.423338e+02 3.470575e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 6.852000e+05 2.398861e-04 5.000000e-01 0.000000e+00 1.394083e+02 2.729165e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 7.137500e+05 2.327468e-04 5.000000e-01 0.000000e+00 1.391185e+02 1.801824e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 7.423000e+05 2.518383e-04 5.000000e-01 0.000000e+00 1.365503e+02 8.301008e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 7.708500e+05 2.292527e-04 5.000000e-01 0.000000e+00 1.320790e+02 5.540257e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 7.994000e+05 2.094494e-04 5.000000e-01 0.000000e+00 1.311070e+02 1.002646e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 8.279500e+05 1.733966e-04 5.000000e-01 0.000000e+00 1.291416e+02 1.101862e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 8.565000e+05 1.491044e-04 5.000000e-01 0.000000e+00 1.276230e+02 1.606873e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 8.850500e+05 1.263787e-04 5.000000e-01 0.000000e+00 1.236285e+02 1.353831e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 9.136000e+05 1.298418e-04 5.000000e-01 0.000000e+00 1.234168e+02 1.530943e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 9.421500e+05 1.359821e-04 5.000000e-01 0.000000e+00 1.214399e+02 1.378130e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 9.707000e+05 1.584705e-04 5.000000e-01 0.000000e+00 1.196474e+02 1.191817e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 9.992500e+05 1.868805e-04 5.000000e-01 0.000000e+00 1.154719e+02 4.189362e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.027800e+06 2.117798e-04 5.000000e-01 0.000000e+00 1.159218e+02 4.391646e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.056350e+06 2.593110e-04 5.000000e-01 0.000000e+00 1.140651e+02 1.132825e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.084900e+06 3.233751e-04 5.000000e-01 0.000000e+00 1.120144e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.113450e+06 3.493757e-04 5.000000e-01 0.000000e+00 1.080349e+02 7.213622e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.142000e+06 3.640197e-04 5.000000e-01 0.000000e+00 1.084907e+02 1.301575e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.170550e+06 3.479519e-04 5.000000e-01 0.000000e+00 1.067114e+02 1.695531e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.199100e+06 2.908806e-04 5.000000e-01 0.000000e+00 1.049824e+02 3.079848e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.227650e+06 2.174643e-04 5.000000e-01 0.000000e+00 1.009258e+02 1.148141e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.256200e+06 2.185184e-04 5.000000e-01 0.000000e+00 1.013853e+02 9.826697e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.284750e+06 1.879573e-04 5.000000e-01 0.000000e+00 9.968169e+01 1.158756e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.313300e+06 1.773583e-04 5.000000e-01 0.000000e+00 9.738458e+01 2.007671e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.341850e+06 1.734029e-04 5.000000e-01 0.000000e+00 9.594707e+01 1.571179e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.370400e+06 1.745907e-04 5.000000e-01 0.000000e+00 9.474175e+01 1.449613e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.398950e+06 1.870562e-04 5.000000e-01 0.000000e+00 9.298856e+01 1.147349e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.427500e+06 2.277700e-04 5.000000e-01 0.000000e+00 9.016104e+01 6.367200e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.456050e+06 2.295074e-04 5.000000e-01 0.000000e+00 8.959000e+01 6.117152e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.484600e+06 2.353072e-04 5.000000e-01 0.000000e+00 8.748786e+01 2.241943e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.513150e+06 2.453856e-04 5.000000e-01 0.000000e+00 8.424067e+01 2.452705e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.541700e+06 2.232303e-04 5.000000e-01 0.000000e+00 7.564109e+01 4.919469e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.570250e+06 1.909631e-04 5.000000e-01 0.000000e+00 7.434013e+01 7.337485e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.598800e+06 1.647535e-04 5.000000e-01 0.000000e+00 7.299828e+01 1.063164e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.627350e+06 1.459704e-04 5.000000e-01 0.000000e+00 7.161096e+01 1.347953e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.655900e+06 1.424832e-04 5.000000e-01 0.000000e+00 7.035508e+01 1.466773e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.684450e+06 1.536405e-04 5.000000e-01 0.000000e+00 6.898270e+01 1.307139e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.713000e+06 1.825147e-04 5.000000e-01 0.000000e+00 6.762137e+01 8.946918e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.741550e+06 2.239034e-04 5.000000e-01 0.000000e+00 6.624960e+01 6.584273e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.770100e+06 3.024685e-04 5.000000e-01 0.000000e+00 6.531208e+01 2.650382e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.798650e+06 3.404528e-04 5.000000e-01 0.000000e+00 6.421609e+01 5.933294e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.827200e+06 3.666257e-04 5.000000e-01 0.000000e+00 6.291830e+01 4.423956e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.855750e+06 3.712864e-04 5.000000e-01 0.000000e+00 6.170267e+01 1.773382e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.884300e+06 3.312680e-04 5.000000e-01 0.000000e+00 6.047019e+01 3.565837e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.912850e+06 2.628759e-04 5.000000e-01 0.000000e+00 5.927047e+01 7.691540e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.941400e+06 2.206961e-04 5.000000e-01 0.000000e+00 5.804984e+01 1.477485e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.969950e+06 2.029753e-04 5.000000e-01 0.000000e+00 5.685619e+01 2.041132e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 1.998500e+06 2.161352e-04 5.000000e-01 0.000000e+00 5.595186e+01 2.376373e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.027050e+06 2.385333e-04 5.000000e-01 0.000000e+00 5.496441e+01 1.847350e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.055600e+06 2.810429e-04 5.000000e-01 0.000000e+00 5.382243e+01 1.393246e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.084150e+06 3.568878e-04 5.000000e-01 0.000000e+00 5.273088e+01 6.458029e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.112700e+06 4.513244e-04 5.000000e-01 0.000000e+00 5.161442e+01 1.101014e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.141250e+06 5.585547e-04 5.000000e-01 0.000000e+00 5.052045e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.169800e+06 6.294444e-04 5.000000e-01 0.000000e+00 4.926079e+01 8.947379e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.198350e+06 5.914374e-04 5.000000e-01 0.000000e+00 4.807402e+01 8.298580e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.226900e+06 4.643528e-04 5.000000e-01 0.000000e+00 4.735885e+01 4.050458e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.255450e+06 3.884428e-04 5.000000e-01 0.000000e+00 4.641569e+01 1.005802e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.284000e+06 3.177334e-04 5.000000e-01 0.000000e+00 4.537305e+01 1.612989e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.312550e+06 2.660381e-04 5.000000e-01 0.000000e+00 4.437731e+01 1.978594e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.341100e+06 2.395586e-04 5.000000e-01 0.000000e+00 4.344287e+01 2.432840e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.369650e+06 2.430232e-04 5.000000e-01 0.000000e+00 4.249957e+01 2.257211e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.398200e+06 2.670473e-04 5.000000e-01 0.000000e+00 4.146628e+01 1.484452e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.426750e+06 3.264835e-04 5.000000e-01 0.000000e+00 4.047953e+01 5.908212e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.455300e+06 4.142146e-04 5.000000e-01 0.000000e+00 3.953862e+01 6.588931e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.483850e+06 5.825914e-04 5.000000e-01 0.000000e+00 3.926663e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.512400e+06 5.783514e-04 5.000000e-01 0.000000e+00 3.815811e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.540950e+06 5.720743e-04 5.000000e-01 0.000000e+00 3.724872e+01 2.197559e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.569500e+06 5.225546e-04 5.000000e-01 0.000000e+00 3.633305e+01 1.379029e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.598050e+06 5.085552e-04 5.000000e-01 0.000000e+00 3.538326e+01 6.197270e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.626600e+06 4.504700e-04 5.000000e-01 0.000000e+00 3.460461e+01 8.532277e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.655150e+06 4.037731e-04 5.000000e-01 0.000000e+00 3.378657e+01 1.478432e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.683700e+06 3.416737e-04 5.000000e-01 0.000000e+00 3.285148e+01 1.789126e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.712250e+06 2.771370e-04 5.000000e-01 0.000000e+00 3.260658e+01 2.403297e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.740800e+06 2.493680e-04 5.000000e-01 0.000000e+00 3.149024e+01 1.567468e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.769350e+06 2.057522e-04 5.000000e-01 0.000000e+00 3.070152e+01 1.477675e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.797900e+06 1.252051e-04 5.000000e-01 0.000000e+00 3.008072e+01 1.203530e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-2.816248e+12 2.826450e+06 4.299212e-05 5.000000e-01 0.000000e+00 2.916253e+01 4.725847e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 4.282500e+05 1.190403e-03 5.000000e-01 0.000000e+00 1.614007e+02 3.197741e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 4.568000e+05 9.339090e-04 5.000000e-01 0.000000e+00 1.560390e+02 1.771596e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 4.853500e+05 8.562532e-04 5.000000e-01 0.000000e+00 1.566735e+02 3.580126e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 5.139000e+05 6.838831e-04 5.000000e-01 0.000000e+00 1.543210e+02 1.218456e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 5.424500e+05 5.307961e-04 5.000000e-01 0.000000e+00 1.518750e+02 2.870311e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 5.710000e+05 4.070720e-04 5.000000e-01 0.000000e+00 1.465781e+02 3.857779e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 5.995500e+05 3.587904e-04 5.000000e-01 0.000000e+00 1.479401e+02 3.808518e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 6.281000e+05 2.844741e-04 5.000000e-01 0.000000e+00 1.455619e+02 3.912991e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 6.566500e+05 2.422568e-04 5.000000e-01 0.000000e+00 1.423338e+02 3.470574e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 6.852000e+05 2.398860e-04 5.000000e-01 0.000000e+00 1.394083e+02 2.729163e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 7.137500e+05 2.327467e-04 5.000000e-01 0.000000e+00 1.391185e+02 1.801824e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 7.423000e+05 2.518383e-04 5.000000e-01 0.000000e+00 1.365503e+02 8.301015e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 7.708500e+05 2.292527e-04 5.000000e-01 0.000000e+00 1.320790e+02 5.540253e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 7.994000e+05 2.094495e-04 5.000000e-01 0.000000e+00 1.311070e+02 1.002646e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 8.279500e+05 1.733967e-04 5.000000e-01 0.000000e+00 1.291416e+02 1.101861e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 8.565000e+05 1.491044e-04 5.000000e-01 0.000000e+00 1.276230e+02 1.606872e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 8.850500e+05 1.263788e-04 5.000000e-01 0.000000e+00 1.236285e+02 1.353831e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 9.136000e+05 1.298418e-04 5.000000e-01 0.000000e+00 1.234168e+02 1.530942e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 9.421500e+05 1.359822e-04 5.000000e-01 0.000000e+00 1.214399e+02 1.378128e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 9.707000e+05 1.584705e-04 5.000000e-01 0.000000e+00 1.196474e+02 1.191815e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 9.992500e+05 1.868805e-04 5.000000e-01 0.000000e+00 1.154719e+02 4.189356e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.027800e+06 2.117798e-04 5.000000e-01 0.000000e+00 1.159218e+02 4.391631e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.056350e+06 2.593109e-04 5.000000e-01 0.000000e+00 1.140651e+02 1.132819e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.084900e+06 3.233750e-04 5.000000e-01 0.000000e+00 1.120144e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.113450e+06 3.493757e-04 5.000000e-01 0.000000e+00 1.080349e+02 7.213523e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.142000e+06 3.640196e-04 5.000000e-01 0.000000e+00 1.084907e+02 1.301568e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.170550e+06 3.479518e-04 5.000000e-01 0.000000e+00 1.067114e+02 1.695520e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.199100e+06 2.908805e-04 5.000000e-01 0.000000e+00 1.049824e+02 3.079826e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.227650e+06 2.174643e-04 5.000000e-01 0.000000e+00 1.009258e+02 1.148134e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.256200e+06 2.185183e-04 5.000000e-01 0.000000e+00 1.013853e+02 9.826630e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.284750e+06 1.879572e-04 5.000000e-01 0.000000e+00 9.968170e+01 1.158748e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.313300e+06 1.773583e-04 5.000000e-01 0.000000e+00 9.738458e+01 2.007659e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.341850e+06 1.734029e-04 5.000000e-01 0.000000e+00 9.594707e+01 1.571167e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.370400e+06 1.745906e-04 5.000000e-01 0.000000e+00 9.474175e+01 1.449602e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.398950e+06 1.870561e-04 5.000000e-01 0.000000e+00 9.298857e+01 1.147338e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.427500e+06 2.277700e-04 5.000000e-01 0.000000e+00 9.016104e+01 6.367104e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.456050e+06 2.295074e-04 5.000000e-01 0.000000e+00 8.959000e+01 6.117076e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.484600e+06 2.353072e-04 5.000000e-01 0.000000e+00 8.748786e+01 2.241904e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.513150e+06 2.453856e-04 5.000000e-01 0.000000e+00 8.424067e+01 2.452667e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.541700e+06 2.232303e-04 5.000000e-01 0.000000e+00 7.564110e+01 4.919415e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.570250e+06 1.909631e-04 5.000000e-01 0.000000e+00 7.434013e+01 7.337413e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.598800e+06 1.647535e-04 5.000000e-01 0.000000e+00 7.299828e+01 1.063150e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.627350e+06 1.459704e-04 5.000000e-01 0.000000e+00 7.161096e+01 1.347935e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.655900e+06 1.424832e-04 5.000000e-01 0.000000e+00 7.035508e+01 1.466752e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.684450e+06 1.536406e-04 5.000000e-01 0.000000e+00 6.898270e+01 1.307114e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.713000e+06 1.825148e-04 5.000000e-01 0.000000e+00 6.762137e+01 8.946676e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.741550e+06 2.239035e-04 5.000000e-01 0.000000e+00 6.624960e+01 6.584131e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.770100e+06 3.024687e-04 5.000000e-01 0.000000e+00 6.531208e+01 2.650285e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.798650e+06 3.404530e-04 5.000000e-01 0.000000e+00 6.421609e+01 5.932932e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.827200e+06 3.666259e-04 5.000000e-01 0.000000e+00 6.291830e+01 4.423590e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.855750e+06 3.712866e-04 5.000000e-01 0.000000e+00 6.170267e+01 1.773344e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.884300e+06 3.312682e-04 5.000000e-01 0.000000e+00 6.047019e+01 3.565743e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.912850e+06 2.628760e-04 5.000000e-01 0.000000e+00 5.927047e+01 7.691366e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.941400e+06 2.206960e-04 5.000000e-01 0.000000e+00 5.804984e+01 1.477462e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.969950e+06 2.029751e-04 5.000000e-01 0.000000e+00 5.685619e+01 2.041104e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 1.998500e+06 2.161349e-04 5.000000e-01 0.000000e+00 5.595186e+01 2.376345e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.027050e+06 2.385331e-04 5.000000e-01 0.000000e+00 5.496441e+01 1.847323e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.055600e+06 2.810427e-04 5.000000e-01 0.000000e+00 5.382243e+01 1.393220e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.084150e+06 3.568876e-04 5.000000e-01 0.000000e+00 5.273088e+01 6.457878e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.112700e+06 4.513242e-04 5.000000e-01 0.000000e+00 5.161442e+01 1.100977e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.141250e+06 5.585546e-04 5.000000e-01 0.000000e+00 5.052045e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.169800e+06 6.294442e-04 5.000000e-01 0.000000e+00 4.926079e+01 8.946796e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.198350e+06 5.914373e-04 5.000000e-01 0.000000e+00 4.807402e+01 8.297999e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.226900e+06 4.643529e-04 5.000000e-01 0.000000e+00 4.735885e+01 4.050397e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.255450e+06 3.884429e-04 5.000000e-01 0.000000e+00 4.641569e+01 1.005791e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.284000e+06 3.177335e-04 5.000000e-01 0.000000e+00 4.537305e+01 1.612978e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.312550e+06 2.660383e-04 5.000000e-01 0.000000e+00 4.437731e+01 1.978583e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.341100e+06 2.395588e-04 5.000000e-01 0.000000e+00 4.344287e+01 2.432829e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.369650e+06 2.430234e-04 5.000000e-01 0.000000e+00 4.249957e+01 2.257200e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.398200e+06 2.670476e-04 5.000000e-01 0.000000e+00 4.146628e+01 1.484442e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.426750e+06 3.264837e-04 5.000000e-01 0.000000e+00 4.047953e+01 5.908138e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.455300e+06 4.142148e-04 5.000000e-01 0.000000e+00 3.953862e+01 6.588069e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.483850e+06 5.825915e-04 5.000000e-01 0.000000e+00 3.926663e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.512400e+06 5.783515e-04 5.000000e-01 0.000000e+00 3.815811e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.540950e+06 5.720744e-04 5.000000e-01 0.000000e+00 3.724872e+01 2.197459e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.569500e+06 5.225546e-04 5.000000e-01 0.000000e+00 3.633305e+01 1.379019e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.598050e+06 5.085552e-04 5.000000e-01 0.000000e+00 3.538326e+01 6.197234e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.626600e+06 4.504700e-04 5.000000e-01 0.000000e+00 3.460461e+01 8.532224e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.655150e+06 4.037731e-04 5.000000e-01 0.000000e+00 3.378657e+01 1.478426e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.683700e+06 3.416737e-04 5.000000e-01 0.000000e+00 3.285148e+01 1.789119e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.712250e+06 2.771370e-04 5.000000e-01 0.000000e+00 3.260658e+01 2.403290e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.740800e+06 2.493679e-04 5.000000e-01 0.000000e+00 3.149024e+01 1.567463e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.769350e+06 2.057522e-04 5.000000e-01 0.000000e+00 3.070152e+01 1.477670e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.797900e+06 1.252050e-04 5.000000e-01 0.000000e+00 3.008072e+01 1.203527e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+2.816248e+12 2.826450e+06 4.299211e-05 5.000000e-01 0.000000e+00 2.916253e+01 4.725835e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 0.000000e+00 1.910030e-04 5.000000e-01 0.000000e+00 2.012118e+02 1.187016e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.855000e+04 5.621492e-04 5.000000e-01 0.000000e+00 1.897418e+02 2.536934e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 0.000000e+00 1.910030e-04 5.000000e-01 0.000000e+00 2.012118e+02 1.187017e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.855000e+04 5.621494e-04 5.000000e-01 0.000000e+00 1.897418e+02 2.536937e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
5.632497e+12 5.710000e+04 5.559895e-04 5.000000e-01 0.000000e+00 1.993509e+02 3.214750e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 8.565000e+04 9.039297e-04 5.000000e-01 0.000000e+00 1.924846e+02 4.159435e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.142000e+05 1.229742e-03 5.000000e-01 0.000000e+00 1.884987e+02 4.580267e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.427500e+05 1.525779e-03 5.000000e-01 0.000000e+00 1.786890e+02 3.310375e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.713000e+05 1.557020e-03 5.000000e-01 0.000000e+00 1.861899e+02 4.396974e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.998500e+05 1.820720e-03 5.000000e-01 0.000000e+00 1.816332e+02 3.510838e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.284000e+05 2.084573e-03 5.000000e-01 0.000000e+00 1.775940e+02 1.943937e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.569500e+05 2.269472e-03 5.000000e-01 0.000000e+00 1.689824e+02 1.174468e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.855000e+05 2.373268e-03 5.000000e-01 0.000000e+00 1.745266e+02 2.606016e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 8.565000e+04 9.039297e-04 5.000000e-01 0.000000e+00 1.924846e+02 4.159437e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.142000e+05 1.229742e-03 5.000000e-01 0.000000e+00 1.884987e+02 4.580270e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.427500e+05 1.525779e-03 5.000000e-01 0.000000e+00 1.786890e+02 3.310382e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.713000e+05 1.557020e-03 5.000000e-01 0.000000e+00 1.861899e+02 4.396977e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.998500e+05 1.820720e-03 5.000000e-01 0.000000e+00 1.816332e+02 3.510843e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.284000e+05 2.084573e-03 5.000000e-01 0.000000e+00 1.775940e+02 1.943941e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.569500e+05 2.269472e-03 5.000000e-01 0.000000e+00 1.689824e+02 1.174493e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.855000e+05 2.373268e-03 5.000000e-01 0.000000e+00 1.745266e+02 2.606048e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
5.632497e+12 3.140500e+05 2.560127e-03 5.000000e-01 0.000000e+00 1.716378e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 3.426000e+05 2.721961e-03 5.000000e-01 0.000000e+00 1.660466e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 3.426000e+05 2.721960e-03 5.000000e-01 0.000000e+00 1.660466e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
5.632497e+12 3.711500e+05 2.687512e-03 5.000000e-01 0.000000e+00 1.653715e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 3.997000e+05 2.577207e-03 5.000000e-01 0.000000e+00 1.639405e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 4.282500e+05 2.187229e-03 5.000000e-01 0.000000e+00 1.614007e+02 3.197444e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 4.568000e+05 1.817476e-03 5.000000e-01 0.000000e+00 1.560390e+02 1.771588e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 4.853500e+05 1.710444e-03 5.000000e-01 0.000000e+00 1.566735e+02 3.580115e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 5.139000e+05 1.458446e-03 5.000000e-01 0.000000e+00 1.543210e+02 1.218454e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 5.424500e+05 1.215479e-03 5.000000e-01 0.000000e+00 1.518750e+02 2.870310e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 5.710000e+05 9.938032e-04 5.000000e-01 0.000000e+00 1.465781e+02 3.857780e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 5.995500e+05 9.201726e-04 5.000000e-01 0.000000e+00 1.479401e+02 3.808518e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 6.281000e+05 7.720908e-04 5.000000e-01 0.000000e+00 1.455619e+02 3.912991e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 6.566500e+05 6.473017e-04 5.000000e-01 0.000000e+00 1.423338e+02 3.470575e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 6.852000e+05 5.785018e-04 5.000000e-01 0.000000e+00 1.394083e+02 2.729165e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 7.137500e+05 5.289823e-04 5.000000e-01 0.000000e+00 1.391185e+02 1.801824e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 7.423000e+05 4.906283e-04 5.000000e-01 0.000000e+00 1.365503e+02 8.301008e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 7.708500e+05 4.346050e-04 5.000000e-01 0.000000e+00 1.320790e+02 5.540257e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 7.994000e+05 4.125040e-04 5.000000e-01 0.000000e+00 1.311070e+02 1.002646e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 8.279500e+05 3.729970e-04 5.000000e-01 0.000000e+00 1.291416e+02 1.101862e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 8.565000e+05 3.485869e-04 5.000000e-01 0.000000e+00 1.276230e+02 1.606873e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 8.850500e+05 3.236175e-04 5.000000e-01 0.000000e+00 1.236285e+02 1.353831e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 9.136000e+05 3.309207e-04 5.000000e-01 0.000000e+00 1.234168e+02 1.530943e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 9.421500e+05 3.413344e-04 5.000000e-01 0.000000e+00 1.214399e+02 1.378130e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 9.707000e+05 3.701497e-04 5.000000e-01 0.000000e+00 1.196474e+02 1.191817e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 9.992500e+05 3.998319e-04 5.000000e-01 0.000000e+00 1.154719e+02 4.189362e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.027800e+06 4.367466e-04 5.000000e-01 0.000000e+00 1.159218e+02 4.391646e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.056350e+06 4.958249e-04 5.000000e-01 0.000000e+00 1.140651e+02 1.132825e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.084900e+06 5.727310e-04 5.000000e-01 0.000000e+00 1.120144e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.113450e+06 5.984853e-04 5.000000e-01 0.000000e+00 1.080349e+02 7.213622e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.142000e+06 6.276797e-04 5.000000e-01 0.000000e+00 1.084907e+02 1.301575e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.170550e+06 6.132617e-04 5.000000e-01 0.000000e+00 1.067114e+02 1.695531e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.199100e+06 5.479173e-04 5.000000e-01 0.000000e+00 1.049824e+02 3.079848e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.227650e+06 4.596518e-04 5.000000e-01 0.000000e+00 1.009258e+02 1.148141e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.256200e+06 4.635175e-04 5.000000e-01 0.000000e+00 1.013853e+02 9.826697e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.284750e+06 4.255764e-04 5.000000e-01 0.000000e+00 9.968169e+01 1.158756e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.313300e+06 4.071939e-04 5.000000e-01 0.000000e+00 9.738458e+01 2.007671e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.341850e+06 3.998485e-04 5.000000e-01 0.000000e+00 9.594707e+01 1.571179e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.370400e+06 3.941879e-04 5.000000e-01 0.000000e+00 9.474175e+01 1.449613e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.398950e+06 3.992455e-04 5.000000e-01 0.000000e+00 9.298856e+01 1.147349e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.427500e+06 4.375563e-04 5.000000e-01 0.000000e+00 9.016104e+01 6.367200e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.456050e+06 4.323977e-04 5.000000e-01 0.000000e+00 8.959000e+01 6.117152e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.484600e+06 4.326149e-04 5.000000e-01 0.000000e+00 8.748786e+01 2.241943e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.513150e+06 4.394144e-04 5.000000e-01 0.000000e+00 8.424067e+01 2.452705e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.541700e+06 4.233425e-04 5.000000e-01 0.000000e+00 7.564109e+01 4.919469e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.570250e+06 3.900381e-04 5.000000e-01 0.000000e+00 7.434013e+01 7.337485e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.598800e+06 3.670117e-04 5.000000e-01 0.000000e+00 7.299828e+01 1.063164e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.627350e+06 3.517636e-04 5.000000e-01 0.000000e+00 7.161096e+01 1.347953e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.655900e+06 3.556851e-04 5.000000e-01 0.000000e+00 7.035508e+01 1.466773e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.684450e+06 3.745550e-04 5.000000e-01 0.000000e+00 6.898270e+01 1.307139e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.713000e+06 4.119810e-04 5.000000e-01 0.000000e+00 6.762137e+01 8.946918e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.741550e+06 4.614714e-04 5.000000e-01 0.000000e+00 6.624960e+01 6.584273e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.770100e+06 5.570768e-04 5.000000e-01 0.000000e+00 6.531208e+01 2.650382e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.798650e+06 6.007293e-04 5.000000e-01 0.000000e+00 6.421609e+01 5.933294e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.827200e+06 6.326300e-04 5.000000e-01 0.000000e+00 6.291830e+01 4.423956e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.855750e+06 6.457560e-04 5.000000e-01 0.000000e+00 6.170267e+01 1.773382e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.884300e+06 6.125568e-04 5.000000e-01 0.000000e+00 6.047019e+01 3.565837e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.912850e+06 5.513857e-04 5.000000e-01 0.000000e+00 5.927047e+01 7.691540e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.941400e+06 5.183082e-04 5.000000e-01 0.000000e+00 5.804984e+01 1.477485e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.969950e+06 5.133723e-04 5.000000e-01 0.000000e+00 5.685619e+01 2.041132e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 1.998500e+06 5.481299e-04 5.000000e-01 0.000000e+00 5.595186e+01 2.376373e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.027050e+06 5.792856e-04 5.000000e-01 0.000000e+00 5.496441e+01 1.847350e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.055600e+06 6.349774e-04 5.000000e-01 0.000000e+00 5.382243e+01 1.393246e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.084150e+06 7.316225e-04 5.000000e-01 0.000000e+00 5.273088e+01 6.458029e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.112700e+06 8.480058e-04 5.000000e-01 0.000000e+00 5.161442e+01 1.101014e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.141250e+06 9.774916e-04 5.000000e-01 0.000000e+00 5.052045e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.169800e+06 1.060610e-03 5.000000e-01 0.000000e+00 4.926079e+01 8.947379e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.198350e+06 1.016471e-03 5.000000e-01 0.000000e+00 4.807402e+01 8.298580e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.226900e+06 8.746658e-04 5.000000e-01 0.000000e+00 4.735885e+01 4.050458e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.255450e+06 7.822442e-04 5.000000e-01 0.000000e+00 4.641569e+01 1.005802e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.284000e+06 6.944887e-04 5.000000e-01 0.000000e+00 4.537305e+01 1.612989e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.312550e+06 6.328336e-04 5.000000e-01 0.000000e+00 4.437731e+01 1.978594e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.341100e+06 6.030194e-04 5.000000e-01 0.000000e+00 4.344287e+01 2.432840e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.369650e+06 6.102775e-04 5.000000e-01 0.000000e+00 4.249957e+01 2.257211e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.398200e+06 6.393760e-04 5.000000e-01 0.000000e+00 4.146628e+01 1.484452e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.426750e+06 7.130820e-04 5.000000e-01 0.000000e+00 4.047953e+01 5.908212e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.455300e+06 8.234899e-04 5.000000e-01 0.000000e+00 3.953862e+01 6.588931e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 3.997000e+05 2.577206e-03 5.000000e-01 0.000000e+00 1.639405e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 4.282500e+05 2.187229e-03 5.000000e-01 0.000000e+00 1.614007e+02 3.197987e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 4.568000e+05 1.817475e-03 5.000000e-01 0.000000e+00 1.560390e+02 1.771655e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 4.853500e+05 1.710443e-03 5.000000e-01 0.000000e+00 1.566735e+02 3.580222e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 5.139000e+05 1.458445e-03 5.000000e-01 0.000000e+00 1.543210e+02 1.218480e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 5.424500e+05 1.215478e-03 5.000000e-01 0.000000e+00 1.518750e+02 2.870354e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 5.710000e+05 9.938026e-04 5.000000e-01 0.000000e+00 1.465781e+02 3.857821e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 5.995500e+05 9.201720e-04 5.000000e-01 0.000000e+00 1.479401e+02 3.808567e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 6.281000e+05 7.720903e-04 5.000000e-01 0.000000e+00 1.455619e+02 3.913044e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 6.566500e+05 6.473013e-04 5.000000e-01 0.000000e+00 1.423338e+02 3.470629e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 6.852000e+05 5.785016e-04 5.000000e-01 0.000000e+00 1.394083e+02 2.729216e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 7.137500e+05 5.289821e-04 5.000000e-01 0.000000e+00 1.391185e+02 1.801871e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 7.423000e+05 4.906282e-04 5.000000e-01 0.000000e+00 1.365503e+02 8.301321e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 7.708500e+05 4.346050e-04 5.000000e-01 0.000000e+00 1.320790e+02 5.540479e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 7.994000e+05 4.125041e-04 5.000000e-01 0.000000e+00 1.311070e+02 1.002678e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 8.279500e+05 3.729970e-04 5.000000e-01 0.000000e+00 1.291416e+02 1.101899e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 8.565000e+05 3.485869e-04 5.000000e-01 0.000000e+00 1.276230e+02 1.606922e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 8.850500e+05 3.236176e-04 5.000000e-01 0.000000e+00 1.236285e+02 1.353874e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 9.136000e+05 3.309208e-04 5.000000e-01 0.000000e+00 1.234168e+02 1.530983e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 9.421500e+05 3.413345e-04 5.000000e-01 0.000000e+00 1.214399e+02 1.378168e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 9.707000e+05 3.701497e-04 5.000000e-01 0.000000e+00 1.196474e+02 1.191846e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 9.992500e+05 3.998319e-04 5.000000e-01 0.000000e+00 1.154719e+02 4.189475e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.027800e+06 4.367465e-04 5.000000e-01 0.000000e+00 1.159218e+02 4.391754e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.056350e+06 4.958249e-04 5.000000e-01 0.000000e+00 1.140651e+02 1.132861e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.084900e+06 5.727309e-04 5.000000e-01 0.000000e+00 1.120144e+02 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.113450e+06 5.984852e-04 5.000000e-01 0.000000e+00 1.080349e+02 7.213572e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.142000e+06 6.276795e-04 5.000000e-01 0.000000e+00 1.084907e+02 1.301565e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.170550e+06 6.132615e-04 5.000000e-01 0.000000e+00 1.067114e+02 1.695509e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.199100e+06 5.479171e-04 5.000000e-01 0.000000e+00 1.049824e+02 3.079789e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.227650e+06 4.596517e-04 5.000000e-01 0.000000e+00 1.009258e+02 1.148121e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.256200e+06 4.635173e-04 5.000000e-01 0.000000e+00 1.013853e+02 9.826507e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.284750e+06 4.255762e-04 5.000000e-01 0.000000e+00 9.968170e+01 1.158732e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.313300e+06 4.071939e-04 5.000000e-01 0.000000e+00 9.738458e+01 2.007634e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.341850e+06 3.998483e-04 5.000000e-01 0.000000e+00 9.594707e+01 1.571142e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.370400e+06 3.941878e-04 5.000000e-01 0.000000e+00 9.474175e+01 1.449578e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.398950e+06 3.992454e-04 5.000000e-01 0.000000e+00 9.298857e+01 1.147319e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.427500e+06 4.375564e-04 5.000000e-01 0.000000e+00 9.016104e+01 6.366918e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.456050e+06 4.323976e-04 5.000000e-01 0.000000e+00 8.959000e+01 6.116955e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.484600e+06 4.326148e-04 5.000000e-01 0.000000e+00 8.748786e+01 2.241848e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.513150e+06 4.394144e-04 5.000000e-01 0.000000e+00 8.424067e+01 2.452586e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.541700e+06 4.233426e-04 5.000000e-01 0.000000e+00 7.564110e+01 4.919281e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.570250e+06 3.900382e-04 5.000000e-01 0.000000e+00 7.434013e+01 7.337263e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.598800e+06 3.670117e-04 5.000000e-01 0.000000e+00 7.299828e+01 1.063129e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.627350e+06 3.517637e-04 5.000000e-01 0.000000e+00 7.161096e+01 1.347910e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.655900e+06 3.556851e-04 5.000000e-01 0.000000e+00 7.035508e+01 1.466725e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.684450e+06 3.745551e-04 5.000000e-01 0.000000e+00 6.898270e+01 1.307085e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.713000e+06 4.119811e-04 5.000000e-01 0.000000e+00 6.762137e+01 8.946412e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.741550e+06 4.614716e-04 5.000000e-01 0.000000e+00 6.624960e+01 6.583995e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.770100e+06 5.570771e-04 5.000000e-01 0.000000e+00 6.531208e+01 2.650190e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.798650e+06 6.007297e-04 5.000000e-01 0.000000e+00 6.421609e+01 5.932627e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.827200e+06 6.326304e-04 5.000000e-01 0.000000e+00 6.291830e+01 4.423262e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.855750e+06 6.457563e-04 5.000000e-01 0.000000e+00 6.170267e+01 1.773306e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.884300e+06 6.125570e-04 5.000000e-01 0.000000e+00 6.047019e+01 3.565653e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.912850e+06 5.513858e-04 5.000000e-01 0.000000e+00 5.927047e+01 7.691221e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.941400e+06 5.183082e-04 5.000000e-01 0.000000e+00 5.804984e+01 1.477445e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.969950e+06 5.133721e-04 5.000000e-01 0.000000e+00 5.685619e+01 2.041087e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 1.998500e+06 5.481296e-04 5.000000e-01 0.000000e+00 5.595186e+01 2.376329e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.027050e+06 5.792853e-04 5.000000e-01 0.000000e+00 5.496441e+01 1.847310e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.055600e+06 6.349771e-04 5.000000e-01 0.000000e+00 5.382243e+01 1.393212e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.084150e+06 7.316221e-04 5.000000e-01 0.000000e+00 5.273088e+01 6.457855e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.112700e+06 8.480055e-04 5.000000e-01 0.000000e+00 5.161442e+01 1.100985e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.141250e+06 9.774914e-04 5.000000e-01 0.000000e+00 5.052045e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.169800e+06 1.060610e-03 5.000000e-01 0.000000e+00 4.926079e+01 8.946930e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.198350e+06 1.016471e-03 5.000000e-01 0.000000e+00 4.807402e+01 8.298284e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.226900e+06 8.746659e-04 5.000000e-01 0.000000e+00 4.735885e+01 4.050442e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.255450e+06 7.822444e-04 5.000000e-01 0.000000e+00 4.641569e+01 1.005803e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.284000e+06 6.944889e-04 5.000000e-01 0.000000e+00 4.537305e+01 1.612997e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.312550e+06 6.328339e-04 5.000000e-01 0.000000e+00 4.437731e+01 1.978611e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.341100e+06 6.030197e-04 5.000000e-01 0.000000e+00 4.344287e+01 2.432860e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.369650e+06 6.102778e-04 5.000000e-01 0.000000e+00 4.249957e+01 2.257231e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.398200e+06 6.393764e-04 5.000000e-01 0.000000e+00 4.146628e+01 1.484471e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.426750e+06 7.130824e-04 5.000000e-01 0.000000e+00 4.047953e+01 5.908306e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.455300e+06 8.234903e-04 5.000000e-01 0.000000e+00 3.953862e+01 6.589412e-07 -1.000000e+00 -1.000000e+00 1.000000e+22
5.632497e+12 2.483850e+06 1.054246e-03 5.000000e-01 0.000000e+00 3.926663e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.512400e+06 1.032618e-03 5.000000e-01 0.000000e+00 3.815811e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.540950e+06 1.023100e-03 5.000000e-01 0.000000e+00 3.724872e+01 2.197559e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.569500e+06 9.693314e-04 5.000000e-01 0.000000e+00 3.633305e+01 1.379029e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.598050e+06 9.413359e-04 5.000000e-01 0.000000e+00 3.538326e+01 6.197270e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.626600e+06 8.676780e-04 5.000000e-01 0.000000e+00 3.460461e+01 8.532277e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.655150e+06 7.881048e-04 5.000000e-01 0.000000e+00 3.378657e+01 1.478432e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.683700e+06 6.800364e-04 5.000000e-01 0.000000e+00 3.285148e+01 1.789126e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.712250e+06 5.652161e-04 5.000000e-01 0.000000e+00 3.260658e+01 2.403297e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.740800e+06 5.122212e-04 5.000000e-01 0.000000e+00 3.149024e+01 1.567468e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.769350e+06 4.177018e-04 5.000000e-01 0.000000e+00 3.070152e+01 1.477675e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.797900e+06 2.619021e-04 5.000000e-01 0.000000e+00 3.008072e+01 1.203530e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
-5.632497e+12 2.826450e+06 9.121441e-05 5.000000e-01 0.000000e+00 2.916253e+01 4.725847e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.512400e+06 1.032619e-03 5.000000e-01 0.000000e+00 3.815811e+01 3.155695e-09 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.540950e+06 1.023100e-03 5.000000e-01 0.000000e+00 3.724872e+01 2.197508e-06 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.569500e+06 9.693315e-04 5.000000e-01 0.000000e+00 3.633305e+01 1.379021e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.598050e+06 9.413359e-04 5.000000e-01 0.000000e+00 3.538326e+01 6.197220e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.626600e+06 8.676780e-04 5.000000e-01 0.000000e+00 3.460461e+01 8.532179e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.655150e+06 7.881048e-04 5.000000e-01 0.000000e+00 3.378657e+01 1.478419e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.683700e+06 6.800363e-04 5.000000e-01 0.000000e+00 3.285148e+01 1.789109e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.712250e+06 5.652162e-04 5.000000e-01 0.000000e+00 3.260658e+01 2.403281e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.740800e+06 5.122211e-04 5.000000e-01 0.000000e+00 3.149024e+01 1.567454e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.769350e+06 4.177017e-04 5.000000e-01 0.000000e+00 3.070152e+01 1.477662e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.797900e+06 2.619021e-04 5.000000e-01 0.000000e+00 3.008072e+01 1.203521e-04 -1.000000e+00 -1.000000e+00 1.000000e+22
+5.632497e+12 2.826450e+06 9.121439e-05 5.000000e-01 0.000000e+00 2.916253e+01 4.725808e-05 -1.000000e+00 -1.000000e+00 1.000000e+22
Modified: branches/active_compositions/tests/passive_comp/screen-output
===================================================================
--- branches/active_compositions/tests/passive_comp/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/passive_comp/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -44,7 +44,7 @@
Solving temperature system... 11 iterations.
Solving composition system 1... 12 iterations.
Rebuilding Stokes preconditioner...
- Solving Stokes system... 0 iterations.
+ Solving Stokes system... 3 iterations.
Postprocessing:
Writing graphical output: output-passive_comp/solution-00002
@@ -56,21 +56,21 @@
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 56.1s | |
+| Total wallclock time elapsed since start | 38.4s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 3 | 6.78s | 12% |
-| Assemble composition system | 3 | 17.2s | 31% |
-| Assemble temperature system | 3 | 15.5s | 28% |
-| Build Stokes preconditioner | 3 | 4.26s | 7.6% |
-| Build composition preconditioner| 3 | 0.0475s | 0.085% |
-| Build temperature preconditioner| 3 | 0.0421s | 0.075% |
-| Solve Stokes system | 3 | 0.534s | 0.95% |
-| Solve composition system | 3 | 0.0606s | 0.11% |
-| Solve temperature system | 3 | 0.0553s | 0.099% |
-| Initialization | 2 | 0.211s | 0.38% |
-| Postprocessing | 3 | 8.93s | 16% |
-| Setup dof systems | 1 | 1.2s | 2.1% |
+| Assemble Stokes system | 3 | 2.66s | 6.9% |
+| Assemble composition system | 3 | 6.15s | 16% |
+| Assemble temperature system | 3 | 6.92s | 18% |
+| Build Stokes preconditioner | 3 | 1.96s | 5.1% |
+| Build composition preconditioner| 3 | 0.0809s | 0.21% |
+| Build temperature preconditioner| 3 | 0.0592s | 0.15% |
+| Solve Stokes system | 3 | 0.778s | 2% |
+| Solve composition system | 3 | 0.0752s | 0.2% |
+| Solve temperature system | 3 | 0.101s | 0.26% |
+| Initialization | 2 | 0.465s | 1.2% |
+| Postprocessing | 3 | 14.6s | 38% |
+| Setup dof systems | 1 | 2.67s | 6.9% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/passive_comp/statistics
===================================================================
--- branches/active_compositions/tests/passive_comp/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/passive_comp/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -17,6 +17,6 @@
# 17: Average nondimensional temperature (K)
# 18: Outward heat flux through boundary with indicator 0 (W)
# 19: Outward heat flux through boundary with indicator 1 (W)
-0 0.0000e+00 768 7392 3264 3264 0 0 41 2.8162e+12 output-passive_comp/solution-00000 5.11003696e-08 6.29356646e-08 0.00000000e+00 0.00000000e+00 2.22507386e-308 -nan 0.00000000e+00 0.00000000e+00
-1 2.8162e+12 768 7392 3264 3264 17 18 0 2.8162e+12 output-passive_comp/solution-00001 5.11003696e-08 6.29356646e-08 0.00000000e+00 4.30823144e-04 2.00252733e-03 inf 2.73895325e-01 8.41540971e-01
-2 5.6325e+12 768 7392 3264 3264 11 12 0 2.8162e+12 output-passive_comp/solution-00002 5.11003696e-08 6.29356646e-08 0.00000000e+00 8.46516329e-04 3.17634906e-03 inf 5.82945229e-01 1.87274109e+00
+0 0.0000e+00 768 7392 3264 3264 0 0 41 2.8162e+12 output-passive_comp/solution-00000 5.11003699e-08 6.29356648e-08 0.00000000e+00 0.00000000e+00 2.22507386e-308 nan 0.00000000e+00 0.00000000e+00
+1 2.8162e+12 768 7392 3264 3264 17 18 0 2.8162e+12 output-passive_comp/solution-00001 5.11003699e-08 6.29356648e-08 0.00000000e+00 4.30823100e-04 2.00252996e-03 inf 2.73895241e-01 8.41541216e-01
+2 5.6325e+12 768 7392 3264 3264 11 12 3 2.8162e+12 output-passive_comp/solution-00002 5.11003699e-08 6.29356648e-08 0.00000000e+00 8.46516240e-04 3.17635254e-03 inf 5.82945093e-01 1.87274139e+00
Modified: branches/active_compositions/tests/sol_cx_2/screen-output
===================================================================
--- branches/active_compositions/tests/sol_cx_2/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_2/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -12,17 +12,18 @@
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.416s | |
+| Total wallclock time elapsed since start | 1.46s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0329s | 7.9% |
-| Assemble temperature system | 1 | 0.14s | 34% |
-| Build Stokes preconditioner | 1 | 0.0343s | 8.3% |
-| Build temperature preconditioner| 1 | 0.00128s | 0.31% |
-| Solve Stokes system | 1 | 0.0149s | 3.6% |
-| Solve temperature system | 1 | 0.000839s | 0.2% |
-| Postprocessing | 1 | 0.0514s | 12% |
-| Setup dof systems | 1 | 0.0429s | 10% |
+| Assemble Stokes system | 1 | 0.222s | 15% |
+| Assemble temperature system | 1 | 0.564s | 39% |
+| Build Stokes preconditioner | 1 | 0.171s | 12% |
+| Build temperature preconditioner| 1 | 0.00121s | 0.083% |
+| Solve Stokes system | 1 | 0.039s | 2.7% |
+| Solve temperature system | 1 | 0.00112s | 0.077% |
+| Initialization | 2 | 0.0968s | 6.6% |
+| Postprocessing | 1 | 0.139s | 9.6% |
+| Setup dof systems | 1 | 0.132s | 9.1% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_cx_2/statistics
===================================================================
--- branches/active_compositions/tests/sol_cx_2/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_2/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-0 0.0000e+00 16 187 81 0 28 3.4287e+01
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+0 0.0000e+00 16 187 81 0 0 28 3.4287e+01
Modified: branches/active_compositions/tests/sol_cx_2_conservative/screen-output
===================================================================
--- branches/active_compositions/tests/sol_cx_2_conservative/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_2_conservative/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -12,18 +12,18 @@
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.281s | |
+| Total wallclock time elapsed since start | 0.847s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0175s | 6.2% |
-| Assemble temperature system | 1 | 0.0784s | 28% |
-| Build Stokes preconditioner | 1 | 0.0202s | 7.2% |
-| Build temperature preconditioner| 1 | 0.000783s | 0.28% |
-| Solve Stokes system | 1 | 0.0171s | 6.1% |
-| Solve temperature system | 1 | 0.000526s | 0.19% |
-| Initialization | 2 | 0.053s | 19% |
-| Postprocessing | 1 | 0.0286s | 10% |
-| Setup dof systems | 1 | 0.0323s | 12% |
+| Assemble Stokes system | 1 | 0.101s | 12% |
+| Assemble temperature system | 1 | 0.328s | 39% |
+| Build Stokes preconditioner | 1 | 0.125s | 15% |
+| Build temperature preconditioner| 1 | 0.00124s | 0.15% |
+| Solve Stokes system | 1 | 0.0317s | 3.7% |
+| Solve temperature system | 1 | 0.0011s | 0.13% |
+| Initialization | 2 | 0.0405s | 4.8% |
+| Postprocessing | 1 | 0.0708s | 8.4% |
+| Setup dof systems | 1 | 0.0677s | 8% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_cx_2_conservative/statistics
===================================================================
--- branches/active_compositions/tests/sol_cx_2_conservative/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_2_conservative/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (years)
-0 0.0000e+00 16 210 81 0 33 1.1317e-06
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (years)
+0 0.0000e+00 16 210 81 0 0 33 1.1317e-06
Modified: branches/active_compositions/tests/sol_cx_2_normalized_pressure/screen-output
===================================================================
--- branches/active_compositions/tests/sol_cx_2_normalized_pressure/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_2_normalized_pressure/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -12,18 +12,18 @@
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.247s | |
+| Total wallclock time elapsed since start | 1.52s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0181s | 7.4% |
-| Assemble temperature system | 1 | 0.0769s | 31% |
-| Build Stokes preconditioner | 1 | 0.0202s | 8.2% |
-| Build temperature preconditioner| 1 | 0.000798s | 0.32% |
-| Solve Stokes system | 1 | 0.0132s | 5.4% |
-| Solve temperature system | 1 | 0.000544s | 0.22% |
-| Initialization | 2 | 0.0267s | 11% |
-| Postprocessing | 1 | 0.0291s | 12% |
-| Setup dof systems | 1 | 0.0338s | 14% |
+| Assemble Stokes system | 1 | 0.0922s | 6.1% |
+| Assemble temperature system | 1 | 0.501s | 33% |
+| Build Stokes preconditioner | 1 | 0.21s | 14% |
+| Build temperature preconditioner| 1 | 0.00173s | 0.11% |
+| Solve Stokes system | 1 | 0.0929s | 6.1% |
+| Solve temperature system | 1 | 0.00126s | 0.083% |
+| Initialization | 2 | 0.0841s | 5.5% |
+| Postprocessing | 1 | 0.264s | 17% |
+| Setup dof systems | 1 | 0.218s | 14% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_cx_2_normalized_pressure/statistics
===================================================================
--- branches/active_compositions/tests/sol_cx_2_normalized_pressure/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_2_normalized_pressure/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-0 0.0000e+00 16 187 81 0 28 3.4287e+01
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+0 0.0000e+00 16 187 81 0 0 28 3.4287e+01
Modified: branches/active_compositions/tests/sol_cx_2_q3/screen-output
===================================================================
--- branches/active_compositions/tests/sol_cx_2_q3/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_2_q3/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -12,17 +12,18 @@
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.623s | |
+| Total wallclock time elapsed since start | 2.56s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0855s | 14% |
-| Assemble temperature system | 1 | 0.203s | 33% |
-| Build Stokes preconditioner | 1 | 0.0776s | 12% |
-| Build temperature preconditioner| 1 | 0.00141s | 0.23% |
-| Solve Stokes system | 1 | 0.0327s | 5.2% |
-| Solve temperature system | 1 | 0.000997s | 0.16% |
-| Postprocessing | 1 | 0.0727s | 12% |
-| Setup dof systems | 1 | 0.062s | 10% |
+| Assemble Stokes system | 1 | 0.521s | 20% |
+| Assemble temperature system | 1 | 0.844s | 33% |
+| Build Stokes preconditioner | 1 | 0.195s | 7.6% |
+| Build temperature preconditioner| 1 | 0.00124s | 0.048% |
+| Solve Stokes system | 1 | 0.0544s | 2.1% |
+| Solve temperature system | 1 | 0.00139s | 0.054% |
+| Initialization | 2 | 0.105s | 4.1% |
+| Postprocessing | 1 | 0.171s | 6.7% |
+| Setup dof systems | 1 | 0.458s | 18% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_cx_2_q3/statistics
===================================================================
--- branches/active_compositions/tests/sol_cx_2_q3/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_2_q3/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-0 0.0000e+00 16 419 81 0 34 3.5414e+01
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+0 0.0000e+00 16 419 81 0 0 34 3.5414e+01
Modified: branches/active_compositions/tests/sol_cx_4/screen-output
===================================================================
--- branches/active_compositions/tests/sol_cx_4/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_4/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -7,23 +7,23 @@
Solving Stokes system... 30+3 iterations.
Postprocessing:
- Errors u_L1, p_L1, u_L2, p_L2: 1.125997e-06, 1.101883e-01, 1.670009e-06, 1.106214e-01
+ Errors u_L1, p_L1, u_L2, p_L2: 1.125997e-06, 1.101883e-01, 1.670008e-06, 1.106214e-01
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.317s | |
+| Total wallclock time elapsed since start | 4.24s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0155s | 4.9% |
-| Assemble temperature system | 1 | 0.0317s | 10% |
-| Build Stokes preconditioner | 1 | 0.0245s | 7.7% |
-| Build temperature preconditioner| 1 | 0.00525s | 1.7% |
-| Solve Stokes system | 1 | 0.0672s | 21% |
-| Solve temperature system | 1 | 0.000776s | 0.24% |
-| Initialization | 2 | 0.0243s | 7.7% |
-| Postprocessing | 1 | 0.0981s | 31% |
-| Setup dof systems | 1 | 0.034s | 11% |
+| Assemble Stokes system | 1 | 0.386s | 9.1% |
+| Assemble temperature system | 1 | 1.22s | 29% |
+| Build Stokes preconditioner | 1 | 0.258s | 6.1% |
+| Build temperature preconditioner| 1 | 0.00535s | 0.13% |
+| Solve Stokes system | 1 | 0.103s | 2.4% |
+| Solve temperature system | 1 | 0.00515s | 0.12% |
+| Initialization | 2 | 0.234s | 5.5% |
+| Postprocessing | 1 | 0.524s | 12% |
+| Setup dof systems | 1 | 1.15s | 27% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_cx_4/statistics
===================================================================
--- branches/active_compositions/tests/sol_cx_4/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_4/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-0 0.0000e+00 256 2467 1089 0 33 8.8081e+00
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+0 0.0000e+00 256 2467 1089 0 0 33 8.8081e+00
Modified: branches/active_compositions/tests/sol_cx_4_conservative/screen-output
===================================================================
--- branches/active_compositions/tests/sol_cx_4_conservative/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_4_conservative/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -7,23 +7,23 @@
Solving Stokes system... 30+4 iterations.
Postprocessing:
- Errors u_L1, p_L1, u_L2, p_L2: 1.120286e-06, 1.097680e-01, 1.662153e-06, 1.097686e-01
+ Errors u_L1, p_L1, u_L2, p_L2: 1.120286e-06, 1.097680e-01, 1.662152e-06, 1.097686e-01
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.342s | |
+| Total wallclock time elapsed since start | 5.06s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0133s | 3.9% |
-| Assemble temperature system | 1 | 0.0347s | 10% |
-| Build Stokes preconditioner | 1 | 0.0271s | 7.9% |
-| Build temperature preconditioner| 1 | 0.00527s | 1.5% |
-| Solve Stokes system | 1 | 0.0758s | 22% |
-| Solve temperature system | 1 | 0.000727s | 0.21% |
-| Initialization | 2 | 0.0345s | 10% |
-| Postprocessing | 1 | 0.0983s | 29% |
-| Setup dof systems | 1 | 0.0332s | 9.7% |
+| Assemble Stokes system | 1 | 0.388s | 7.7% |
+| Assemble temperature system | 1 | 1.45s | 29% |
+| Build Stokes preconditioner | 1 | 0.403s | 8% |
+| Build temperature preconditioner| 1 | 0.00531s | 0.1% |
+| Solve Stokes system | 1 | 0.164s | 3.2% |
+| Solve temperature system | 1 | 0.0256s | 0.51% |
+| Initialization | 2 | 0.937s | 19% |
+| Postprocessing | 1 | 0.859s | 17% |
+| Setup dof systems | 1 | 0.424s | 8.4% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_cx_4_conservative/statistics
===================================================================
--- branches/active_compositions/tests/sol_cx_4_conservative/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_4_conservative/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (years)
-0 0.0000e+00 256 2946 1089 0 34 2.7917e-07
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (years)
+0 0.0000e+00 256 2946 1089 0 0 34 2.7917e-07
Modified: branches/active_compositions/tests/sol_cx_4_normalized_pressure/screen-output
===================================================================
--- branches/active_compositions/tests/sol_cx_4_normalized_pressure/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_4_normalized_pressure/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -7,23 +7,23 @@
Solving Stokes system... 30+3 iterations.
Postprocessing:
- Errors u_L1, p_L1, u_L2, p_L2: 1.125997e-06, 2.994143e-03, 1.670009e-06, 9.778441e-03
+ Errors u_L1, p_L1, u_L2, p_L2: 1.125997e-06, 2.994144e-03, 1.670008e-06, 9.778441e-03
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.321s | |
+| Total wallclock time elapsed since start | 4.05s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0157s | 4.9% |
-| Assemble temperature system | 1 | 0.0325s | 10% |
-| Build Stokes preconditioner | 1 | 0.025s | 7.8% |
-| Build temperature preconditioner| 1 | 0.00527s | 1.6% |
-| Solve Stokes system | 1 | 0.0679s | 21% |
-| Solve temperature system | 1 | 0.00075s | 0.23% |
-| Initialization | 2 | 0.0254s | 7.9% |
-| Postprocessing | 1 | 0.0987s | 31% |
-| Setup dof systems | 1 | 0.0341s | 11% |
+| Assemble Stokes system | 1 | 0.39s | 9.6% |
+| Assemble temperature system | 1 | 1.17s | 29% |
+| Build Stokes preconditioner | 1 | 0.295s | 7.3% |
+| Build temperature preconditioner| 1 | 0.00545s | 0.13% |
+| Solve Stokes system | 1 | 0.109s | 2.7% |
+| Solve temperature system | 1 | 0.0252s | 0.62% |
+| Initialization | 2 | 0.221s | 5.5% |
+| Postprocessing | 1 | 0.541s | 13% |
+| Setup dof systems | 1 | 0.977s | 24% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_cx_4_normalized_pressure/statistics
===================================================================
--- branches/active_compositions/tests/sol_cx_4_normalized_pressure/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_4_normalized_pressure/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-0 0.0000e+00 256 2467 1089 0 33 8.8081e+00
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+0 0.0000e+00 256 2467 1089 0 0 33 8.8081e+00
Modified: branches/active_compositions/tests/sol_cx_4_normalized_pressure_large_static_pressure/screen-output
===================================================================
--- branches/active_compositions/tests/sol_cx_4_normalized_pressure_large_static_pressure/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_4_normalized_pressure_large_static_pressure/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -7,23 +7,23 @@
Solving Stokes system... 19 iterations.
Postprocessing:
- Errors u_L1, p_L1, u_L2, p_L2: 1.132645e-06, 2.994063e-03, 1.685575e-06, 9.778949e-03
+ Errors u_L1, p_L1, u_L2, p_L2: 1.133264e-06, 2.994067e-03, 1.688315e-06, 9.778955e-03
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.278s | |
+| Total wallclock time elapsed since start | 4.45s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0171s | 6.1% |
-| Assemble temperature system | 1 | 0.0317s | 11% |
-| Build Stokes preconditioner | 1 | 0.0247s | 8.9% |
-| Build temperature preconditioner| 1 | 0.00531s | 1.9% |
-| Solve Stokes system | 1 | 0.0242s | 8.7% |
-| Solve temperature system | 1 | 0.000726s | 0.26% |
-| Initialization | 2 | 0.0254s | 9.1% |
-| Postprocessing | 1 | 0.0992s | 36% |
-| Setup dof systems | 1 | 0.0338s | 12% |
+| Assemble Stokes system | 1 | 0.521s | 12% |
+| Assemble temperature system | 1 | 1.11s | 25% |
+| Build Stokes preconditioner | 1 | 0.393s | 8.8% |
+| Build temperature preconditioner| 1 | 0.0054s | 0.12% |
+| Solve Stokes system | 1 | 0.111s | 2.5% |
+| Solve temperature system | 1 | 0.0251s | 0.56% |
+| Initialization | 2 | 0.108s | 2.4% |
+| Postprocessing | 1 | 1.28s | 29% |
+| Setup dof systems | 1 | 0.574s | 13% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_cx_4_normalized_pressure_large_static_pressure/statistics
===================================================================
--- branches/active_compositions/tests/sol_cx_4_normalized_pressure_large_static_pressure/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_4_normalized_pressure_large_static_pressure/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-0 0.0000e+00 256 2467 1089 0 19 8.8074e+00
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+0 0.0000e+00 256 2467 1089 0 0 19 8.8073e+00
Modified: branches/active_compositions/tests/sol_cx_4_normalized_pressure_low_solver_tolerance/screen-output
===================================================================
--- branches/active_compositions/tests/sol_cx_4_normalized_pressure_low_solver_tolerance/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_4_normalized_pressure_low_solver_tolerance/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -7,23 +7,23 @@
Solving Stokes system... 14 iterations.
Postprocessing:
- Errors u_L1, p_L1, u_L2, p_L2: 1.729973e-06, 3.087877e-03, 2.357639e-06, 9.798674e-03
+ Errors u_L1, p_L1, u_L2, p_L2: 1.782744e-06, 3.088647e-03, 2.429580e-06, 9.798174e-03
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.273s | |
+| Total wallclock time elapsed since start | 4.53s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0187s | 6.9% |
-| Assemble temperature system | 1 | 0.0319s | 12% |
-| Build Stokes preconditioner | 1 | 0.025s | 9.2% |
-| Build temperature preconditioner| 1 | 0.00531s | 1.9% |
-| Solve Stokes system | 1 | 0.0182s | 6.7% |
-| Solve temperature system | 1 | 0.000738s | 0.27% |
-| Initialization | 2 | 0.0256s | 9.4% |
-| Postprocessing | 1 | 0.0979s | 36% |
-| Setup dof systems | 1 | 0.0338s | 12% |
+| Assemble Stokes system | 1 | 0.353s | 7.8% |
+| Assemble temperature system | 1 | 1.1s | 24% |
+| Build Stokes preconditioner | 1 | 0.257s | 5.7% |
+| Build temperature preconditioner| 1 | 0.00563s | 0.12% |
+| Solve Stokes system | 1 | 0.0391s | 0.86% |
+| Solve temperature system | 1 | 0.00528s | 0.12% |
+| Initialization | 2 | 0.143s | 3.2% |
+| Postprocessing | 1 | 0.783s | 17% |
+| Setup dof systems | 1 | 1.41s | 31% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_cx_4_normalized_pressure_low_solver_tolerance/statistics
===================================================================
--- branches/active_compositions/tests/sol_cx_4_normalized_pressure_low_solver_tolerance/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_cx_4_normalized_pressure_low_solver_tolerance/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-0 0.0000e+00 256 2467 1089 0 14 8.8189e+00
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+0 0.0000e+00 256 2467 1089 0 0 14 8.8186e+00
Modified: branches/active_compositions/tests/sol_kz_2/screen-output
===================================================================
--- branches/active_compositions/tests/sol_kz_2/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_kz_2/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -7,23 +7,23 @@
Solving Stokes system... 30+2 iterations.
Postprocessing:
- Errors u_L1, p_L1, u_L2, p_L2: 5.054534e-06, 1.492377e-02, 7.343796e-06, 1.993999e-02
+ Errors u_L1, p_L1, u_L2, p_L2: 5.054531e-06, 1.492378e-02, 7.343795e-06, 1.994003e-02
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.105s | |
+| Total wallclock time elapsed since start | 1.67s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.00657s | 6.2% |
-| Assemble temperature system | 1 | 0.0232s | 22% |
-| Build Stokes preconditioner | 1 | 0.0104s | 9.9% |
-| Build temperature preconditioner| 1 | 0.00117s | 1.1% |
-| Solve Stokes system | 1 | 0.0107s | 10% |
-| Solve temperature system | 1 | 0.000454s | 0.43% |
-| Initialization | 2 | 0.0231s | 22% |
-| Postprocessing | 1 | 0.00788s | 7.5% |
-| Setup dof systems | 1 | 0.00961s | 9.1% |
+| Assemble Stokes system | 1 | 0.177s | 11% |
+| Assemble temperature system | 1 | 0.605s | 36% |
+| Build Stokes preconditioner | 1 | 0.12s | 7.2% |
+| Build temperature preconditioner| 1 | 0.00124s | 0.074% |
+| Solve Stokes system | 1 | 0.0294s | 1.8% |
+| Solve temperature system | 1 | 0.00113s | 0.067% |
+| Initialization | 2 | 0.14s | 8.4% |
+| Postprocessing | 1 | 0.216s | 13% |
+| Setup dof systems | 1 | 0.236s | 14% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_kz_2/statistics
===================================================================
--- branches/active_compositions/tests/sol_kz_2/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_kz_2/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-0 0.0000e+00 16 187 81 0 32 1.0995e+03
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+0 0.0000e+00 16 187 81 0 0 32 1.0995e+03
Modified: branches/active_compositions/tests/sol_kz_2_conservative/screen-output
===================================================================
--- branches/active_compositions/tests/sol_kz_2_conservative/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_kz_2_conservative/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -7,23 +7,23 @@
Solving Stokes system... 30+2 iterations.
Postprocessing:
- Errors u_L1, p_L1, u_L2, p_L2: 5.054534e-06, 1.492377e-02, 7.343796e-06, 1.993999e-02
+ Errors u_L1, p_L1, u_L2, p_L2: 5.054531e-06, 1.492378e-02, 7.343795e-06, 1.994003e-02
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.102s | |
+| Total wallclock time elapsed since start | 1.43s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.00656s | 6.4% |
-| Assemble temperature system | 1 | 0.0219s | 21% |
-| Build Stokes preconditioner | 1 | 0.0105s | 10% |
-| Build temperature preconditioner| 1 | 0.00116s | 1.1% |
-| Solve Stokes system | 1 | 0.0108s | 11% |
-| Solve temperature system | 1 | 0.000454s | 0.44% |
-| Initialization | 2 | 0.0225s | 22% |
-| Postprocessing | 1 | 0.00775s | 7.6% |
-| Setup dof systems | 1 | 0.00891s | 8.7% |
+| Assemble Stokes system | 1 | 0.169s | 12% |
+| Assemble temperature system | 1 | 0.549s | 38% |
+| Build Stokes preconditioner | 1 | 0.14s | 9.8% |
+| Build temperature preconditioner| 1 | 0.00122s | 0.085% |
+| Solve Stokes system | 1 | 0.0693s | 4.8% |
+| Solve temperature system | 1 | 0.00112s | 0.078% |
+| Initialization | 2 | 0.077s | 5.4% |
+| Postprocessing | 1 | 0.137s | 9.6% |
+| Setup dof systems | 1 | 0.16s | 11% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_kz_2_conservative/statistics
===================================================================
--- branches/active_compositions/tests/sol_kz_2_conservative/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_kz_2_conservative/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (years)
-0 0.0000e+00 16 187 81 0 32 3.4841e-05
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (years)
+0 0.0000e+00 16 187 81 0 0 32 3.4841e-05
Modified: branches/active_compositions/tests/sol_kz_2_q3/screen-output
===================================================================
--- branches/active_compositions/tests/sol_kz_2_q3/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_kz_2_q3/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -7,23 +7,23 @@
Solving Stokes system... 30+9 iterations.
Postprocessing:
- Errors u_L1, p_L1, u_L2, p_L2: 7.274377e-07, 2.219141e-03, 1.423559e-06, 3.234685e-03
+ Errors u_L1, p_L1, u_L2, p_L2: 7.274379e-07, 2.219137e-03, 1.423558e-06, 3.234684e-03
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.144s | |
+| Total wallclock time elapsed since start | 2.96s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.00951s | 6.6% |
-| Assemble temperature system | 1 | 0.0283s | 20% |
-| Build Stokes preconditioner | 1 | 0.0165s | 12% |
-| Build temperature preconditioner| 1 | 0.00124s | 0.86% |
-| Solve Stokes system | 1 | 0.0272s | 19% |
-| Solve temperature system | 1 | 0.000499s | 0.35% |
-| Initialization | 2 | 0.0236s | 16% |
-| Postprocessing | 1 | 0.0117s | 8.1% |
-| Setup dof systems | 1 | 0.0122s | 8.5% |
+| Assemble Stokes system | 1 | 0.568s | 19% |
+| Assemble temperature system | 1 | 1.23s | 42% |
+| Build Stokes preconditioner | 1 | 0.351s | 12% |
+| Build temperature preconditioner| 1 | 0.00127s | 0.043% |
+| Solve Stokes system | 1 | 0.0872s | 3% |
+| Solve temperature system | 1 | 0.00136s | 0.046% |
+| Initialization | 2 | 0.105s | 3.5% |
+| Postprocessing | 1 | 0.0933s | 3.2% |
+| Setup dof systems | 1 | 0.35s | 12% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_kz_2_q3/statistics
===================================================================
--- branches/active_compositions/tests/sol_kz_2_q3/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_kz_2_q3/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-0 0.0000e+00 16 419 81 0 39 9.7871e+02
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+0 0.0000e+00 16 419 81 0 0 39 9.7871e+02
Modified: branches/active_compositions/tests/sol_kz_4/screen-output
===================================================================
--- branches/active_compositions/tests/sol_kz_4/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_kz_4/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -4,26 +4,26 @@
*** Timestep 0: t=0 seconds
Solving temperature system... 0 iterations.
Rebuilding Stokes preconditioner...
- Solving Stokes system... 30+8 iterations.
+ Solving Stokes system... 30+7 iterations.
Postprocessing:
- Errors u_L1, p_L1, u_L2, p_L2: 9.024063e-08, 6.588197e-04, 2.330068e-07, 1.068891e-03
+ Errors u_L1, p_L1, u_L2, p_L2: 9.024083e-08, 6.588221e-04, 2.330059e-07, 1.068891e-03
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.334s | |
+| Total wallclock time elapsed since start | 3.54s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0137s | 4.1% |
-| Assemble temperature system | 1 | 0.0336s | 10% |
-| Build Stokes preconditioner | 1 | 0.03s | 9% |
-| Build temperature preconditioner| 1 | 0.00528s | 1.6% |
-| Solve Stokes system | 1 | 0.0883s | 26% |
-| Solve temperature system | 1 | 0.000745s | 0.22% |
-| Initialization | 2 | 0.025s | 7.5% |
-| Postprocessing | 1 | 0.0865s | 26% |
-| Setup dof systems | 1 | 0.0343s | 10% |
+| Assemble Stokes system | 1 | 0.353s | 10% |
+| Assemble temperature system | 1 | 1.15s | 33% |
+| Build Stokes preconditioner | 1 | 0.304s | 8.6% |
+| Build temperature preconditioner| 1 | 0.00536s | 0.15% |
+| Solve Stokes system | 1 | 0.119s | 3.4% |
+| Solve temperature system | 1 | 0.00508s | 0.14% |
+| Initialization | 2 | 0.0698s | 2% |
+| Postprocessing | 1 | 0.378s | 11% |
+| Setup dof systems | 1 | 0.746s | 21% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_kz_4/statistics
===================================================================
--- branches/active_compositions/tests/sol_kz_4/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_kz_4/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (seconds)
-0 0.0000e+00 256 2467 1089 0 37 2.8480e+02
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (seconds)
+0 0.0000e+00 256 2467 1089 0 0 37 2.8480e+02
Modified: branches/active_compositions/tests/sol_kz_4_conservative/screen-output
===================================================================
--- branches/active_compositions/tests/sol_kz_4_conservative/screen-output 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_kz_4_conservative/screen-output 2012-10-18 20:18:18 UTC (rev 1286)
@@ -4,26 +4,26 @@
*** Timestep 0: t=0 years
Solving temperature system... 0 iterations.
Rebuilding Stokes preconditioner...
- Solving Stokes system... 30+8 iterations.
+ Solving Stokes system... 30+7 iterations.
Postprocessing:
- Errors u_L1, p_L1, u_L2, p_L2: 9.024063e-08, 6.588197e-04, 2.330068e-07, 1.068891e-03
+ Errors u_L1, p_L1, u_L2, p_L2: 9.024083e-08, 6.588221e-04, 2.330059e-07, 1.068891e-03
+---------------------------------------------+------------+------------+
-| Total wallclock time elapsed since start | 0.334s | |
+| Total wallclock time elapsed since start | 3.59s | |
| | | |
| Section | no. calls | wall time | % of total |
+---------------------------------+-----------+------------+------------+
-| Assemble Stokes system | 1 | 0.0197s | 5.9% |
-| Assemble temperature system | 1 | 0.032s | 9.6% |
-| Build Stokes preconditioner | 1 | 0.0248s | 7.4% |
-| Build temperature preconditioner| 1 | 0.00524s | 1.6% |
-| Solve Stokes system | 1 | 0.0882s | 26% |
-| Solve temperature system | 1 | 0.000775s | 0.23% |
-| Initialization | 2 | 0.0249s | 7.5% |
-| Postprocessing | 1 | 0.0889s | 27% |
-| Setup dof systems | 1 | 0.0341s | 10% |
+| Assemble Stokes system | 1 | 0.456s | 13% |
+| Assemble temperature system | 1 | 0.747s | 21% |
+| Build Stokes preconditioner | 1 | 0.292s | 8.1% |
+| Build temperature preconditioner| 1 | 0.00536s | 0.15% |
+| Solve Stokes system | 1 | 0.119s | 3.3% |
+| Solve temperature system | 1 | 0.00509s | 0.14% |
+| Initialization | 2 | 0.15s | 4.2% |
+| Postprocessing | 1 | 0.541s | 15% |
+| Setup dof systems | 1 | 0.944s | 26% |
+---------------------------------+-----------+------------+------------+
Modified: branches/active_compositions/tests/sol_kz_4_conservative/statistics
===================================================================
--- branches/active_compositions/tests/sol_kz_4_conservative/statistics 2012-10-18 19:58:14 UTC (rev 1285)
+++ branches/active_compositions/tests/sol_kz_4_conservative/statistics 2012-10-18 20:18:18 UTC (rev 1286)
@@ -3,7 +3,8 @@
# 3: Number of mesh cells
# 4: Number of Stokes degrees of freedom
# 5: Number of temperature degrees of freedom
-# 6: Iterations for temperature solver
-# 7: Iterations for Stokes solver
-# 8: Time step size (years)
-0 0.0000e+00 256 2467 1089 0 37 9.0249e-06
+# 6: Number of composition degrees of freedom
+# 7: Iterations for temperature solver
+# 8: Iterations for Stokes solver
+# 9: Time step size (years)
+0 0.0000e+00 256 2467 1089 0 0 37 9.0249e-06
More information about the CIG-COMMITS
mailing list