[cig-commits] [commit] master: use introspection for the block index (d11b3bc)
cig_noreply at geodynamics.org
cig_noreply at geodynamics.org
Wed May 21 07:43:36 PDT 2014
Repository : https://github.com/geodynamics/aspect
On branch : master
Link : https://github.com/geodynamics/aspect/compare/6aa7541c733b8fd1cc1b0c74536c8804aaeb7015...fa9e02e17c95bc1a8c6b635f193e536888750f41
>---------------------------------------------------------------
commit d11b3bcf9b56ad5818282491ceb96d0bdbf64129
Author: Juliane Dannberg <dannberg at gfz-potsdam.de>
Date: Tue May 20 20:16:00 2014 +0200
use introspection for the block index
>---------------------------------------------------------------
d11b3bcf9b56ad5818282491ceb96d0bdbf64129
source/simulator/assembly.cc | 13 ++++---------
source/simulator/core.cc | 2 +-
2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/source/simulator/assembly.cc b/source/simulator/assembly.cc
index 53b69ea..4ab4842 100644
--- a/source/simulator/assembly.cc
+++ b/source/simulator/assembly.cc
@@ -1630,16 +1630,11 @@ namespace aspect
void Simulator<dim>::assemble_advection_system (const AdvectionField &advection_field)
{
if (advection_field.is_temperature())
- {
- computing_timer.enter_section (" Assemble temperature system");
- system_matrix.block (2,2) = 0;
- }
+ computing_timer.enter_section (" Assemble temperature system");
else
- {
- computing_timer.enter_section (" Assemble composition system");
- system_matrix.block(3+advection_field.compositional_variable,
- 3+advection_field.compositional_variable) = 0;
- }
+ computing_timer.enter_section (" Assemble composition system");
+
+ system_matrix.block (advection_field.block_index(introspection),advection_field.block_index(introspection)) = 0;
system_rhs = 0;
const std::pair<double,double>
diff --git a/source/simulator/core.cc b/source/simulator/core.cc
index daab346..f5bf680 100644
--- a/source/simulator/core.cc
+++ b/source/simulator/core.cc
@@ -1085,7 +1085,7 @@ namespace aspect
assemble_advection_system (AdvectionField::composition(c));
build_advection_preconditioner(AdvectionField::composition(c),
C_preconditioner);
- solve_advection(AdvectionField::composition(c)); // this is correct, 0 would be temperature
+ solve_advection(AdvectionField::composition(c));
current_linearization_point.block(introspection.block_indices.compositional_fields[c])
= solution.block(introspection.block_indices.compositional_fields[c]);
}
More information about the CIG-COMMITS
mailing list