[cig-commits] [commit] master: Merge branch 'master' into advection_field (40ab879)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed May 21 07:43:39 PDT 2014


Repository : https://github.com/geodynamics/aspect

On branch  : master
Link       : https://github.com/geodynamics/aspect/compare/6aa7541c733b8fd1cc1b0c74536c8804aaeb7015...fa9e02e17c95bc1a8c6b635f193e536888750f41

>---------------------------------------------------------------

commit 40ab87990ffb07cb572dcf8a87daf8b2d2a4dd0d
Merge: d11b3bc 19fcaae
Author: Juliane Dannberg <dannberg at gfz-potsdam.de>
Date:   Tue May 20 20:30:00 2014 +0200

    Merge branch 'master' into advection_field
    
    Conflicts:
    	source/simulator/assembly.cc
    	source/simulator/solver.cc



>---------------------------------------------------------------

40ab87990ffb07cb572dcf8a87daf8b2d2a4dd0d
 doc/modules/changes.h                              |   3 +
 include/aspect/boundary_composition/interface.h    |   4 +-
 include/aspect/boundary_temperature/interface.h    |   4 +-
 .../compositional_initial_conditions/interface.h   |   5 +-
 include/aspect/geometry_model/interface.h          |   4 +-
 include/aspect/gravity_model/interface.h           |   4 +-
 include/aspect/heating_model/interface.h           |   4 +-
 include/aspect/initial_conditions/interface.h      |   4 +-
 include/aspect/introspection.h                     |  20 +-
 include/aspect/material_model/interface.h          |   4 +-
 include/aspect/mesh_refinement/interface.h         |  27 ++-
 .../minimum_refinement_function.h}                 |  51 +++--
 include/aspect/postprocess/interface.h             |   4 +-
 include/aspect/postprocess/visualization.h         |   4 +-
 include/aspect/simulator.h                         |  16 +-
 include/aspect/termination_criteria/interface.h    |   4 +-
 .../velocity_boundary_conditions/interface.h       |   4 +-
 source/mesh_refinement/interface.cc                |  82 ++++++++
 .../mesh_refinement/minimum_refinement_function.cc | 118 ++++++++++++
 source/postprocess/temperature_statistics.cc       |   5 +-
 source/postprocess/visualization/density.cc        |   8 +-
 source/postprocess/visualization/melt_fraction.cc  |  10 +-
 source/postprocess/visualization/specific_heat.cc  |   8 +-
 source/simulator/assembly.cc                       |  28 ++-
 source/simulator/core.cc                           | 171 ++++++++++++++---
 source/simulator/helper_functions.cc               |  71 ++++++-
 source/simulator/initial_conditions.cc             |  41 ++--
 source/simulator/introspection.cc                  |  58 +++---
 source/simulator/nullspace.cc                      |  11 +-
 source/simulator/parameters.cc                     |   8 +
 source/simulator/solver.cc                         |  66 +++++--
 tests/always_refine/statistics                     |  14 +-
 tests/composition-active/statistics                | 132 ++++++-------
 tests/composition-passive-tracers/statistics       |  36 ++--
 tests/composition_reaction/statistics              |  24 +--
 .../latent-heat.prm => tests/direct_solver_1.prm   |   9 +-
 tests/direct_solver_1/screen-output                |  98 ++++++++++
 tests/direct_solver_1/statistics                   |  18 ++
 cookbooks/latent-heat.prm => tests/latent_heat.prm |  32 +---
 tests/latent_heat/screen-output                    |  45 +++++
 .../{radiogenic_heating => latent_heat}/statistics |   4 +-
 tests/minimum_refinement_function.prm              | 211 +++++++++++++++++++++
 tests/minimum_refinement_function/screen-output    | 143 ++++++++++++++
 .../solution-00003.0000.vtu                        |  39 ++++
 .../solution-00003.0001.vtu                        |  39 ++++
 tests/minimum_refinement_function/statistics       |  23 +++
 tests/multicomponent_arithmetic/statistics         |  10 +-
 tests/multicomponent_geometric/statistics          |  10 +-
 tests/multicomponent_harmonic/statistics           |  10 +-
 tests/multicomponent_max_composition/statistics    |  10 +-
 tests/passive_comp/statistics                      |   2 +-
 tests/postprocess_initial/statistics               |  12 +-
 tests/stokes/statistics                            |   2 +-
 53 files changed, 1432 insertions(+), 342 deletions(-)

diff --cc source/simulator/assembly.cc
index 4ab4842,fe674a2..695a1fa
--- a/source/simulator/assembly.cc
+++ b/source/simulator/assembly.cc
@@@ -1230,41 -1233,31 +1233,31 @@@ namespace aspec
  
    template <int dim>
    void
 -  Simulator<dim>::build_advection_preconditioner(const TemperatureOrComposition &temperature_or_composition,
 +  Simulator<dim>::build_advection_preconditioner(const AdvectionField &advection_field,
                                                   std_cxx1x::shared_ptr<aspect::LinearAlgebra::PreconditionILU> &preconditioner)
    {
 -    switch (temperature_or_composition.field_type)
 +    switch (advection_field.field_type)
        {
 -        case TemperatureOrComposition::temperature_field:
 +        case AdvectionField::temperature_field:
          {
            computing_timer.enter_section ("   Build temperature preconditioner");
- 
-           preconditioner.reset (new LinearAlgebra::PreconditionILU());
-           preconditioner->initialize (system_matrix.block(2,2));
- 
-           computing_timer.exit_section();
- 
            break;
          }
  
 -        case TemperatureOrComposition::compositional_field:
 +        case AdvectionField::compositional_field:
          {
            computing_timer.enter_section ("   Build composition preconditioner");
- 
-           const unsigned int block_number
-             = 3+advection_field.compositional_variable;
-           preconditioner.reset (new LinearAlgebra::PreconditionILU());
-           preconditioner->initialize (system_matrix.block(block_number,
-                                                           block_number));
- 
-           computing_timer.exit_section();
- 
            break;
          }
  
          default:
            Assert (false, ExcNotImplemented());
        }
+ 
 -    const unsigned int block_idx = temperature_or_composition.block_index(introspection);
++    const unsigned int block_idx = advection_field.block_index(introspection);
+     preconditioner.reset (new LinearAlgebra::PreconditionILU());
+     preconditioner->initialize (system_matrix.block(block_idx, block_idx));
+     computing_timer.exit_section();
    }
  
  
@@@ -1627,14 -1621,14 +1621,14 @@@
  
  
    template <int dim>
 -  void Simulator<dim>::assemble_advection_system (const TemperatureOrComposition &temperature_or_composition)
 +  void Simulator<dim>::assemble_advection_system (const AdvectionField &advection_field)
    {
 -    if (temperature_or_composition.is_temperature())
 -        computing_timer.enter_section ("   Assemble temperature system");
 +    if (advection_field.is_temperature())
 +      computing_timer.enter_section ("   Assemble temperature system");
      else
 -        computing_timer.enter_section ("   Assemble composition system");
 -    const unsigned int block_idx = temperature_or_composition.block_index(introspection);
 +      computing_timer.enter_section ("   Assemble composition system");
- 
-     system_matrix.block (advection_field.block_index(introspection),advection_field.block_index(introspection)) = 0;
++    const unsigned int block_idx = advection_field.block_index(introspection);
+     system_matrix.block(block_idx, block_idx) = 0;
      system_rhs = 0;
  
      const std::pair<double,double>
diff --cc source/simulator/solver.cc
index 75f4dbb,902dab9..f2561ff
--- a/source/simulator/solver.cc
+++ b/source/simulator/solver.cc
@@@ -288,12 -288,12 +288,12 @@@ namespace aspec
    }
  
    template <int dim>
 -  double Simulator<dim>::solve_advection (const TemperatureOrComposition &temperature_or_composition)
 +  double Simulator<dim>::solve_advection (const AdvectionField &advection_field)
    {
      double advection_solver_tolerance = -1;
-     unsigned int block_number = advection_field.block_index(introspection);
 -    unsigned int block_idx = temperature_or_composition.block_index(introspection);
++    unsigned int block_idx = advection_field.block_index(introspection);
  
 -    if (temperature_or_composition.is_temperature())
 +    if (advection_field.is_temperature())
        {
          computing_timer.enter_section ("   Solve temperature system");
          pcout << "   Solving temperature system... " << std::flush;
@@@ -338,10 -338,10 +338,10 @@@
  
      // solve the linear system:
      current_constraints.set_zero(distributed_solution);
-     solver.solve (system_matrix.block(block_number,block_number),
-                   distributed_solution.block(block_number),
-                   system_rhs.block(block_number),
+     solver.solve (system_matrix.block(block_idx,block_idx),
+                   distributed_solution.block(block_idx),
+                   system_rhs.block(block_idx),
 -                  (temperature_or_composition.is_temperature()
 +                  (advection_field.is_temperature()
                     ?
                     *T_preconditioner
                     :



More information about the CIG-COMMITS mailing list