[cig-commits] commit 1891 by buerg to /var/svn/dealii/aspect
dealii.demon at gmail.com
dealii.demon at gmail.com
Fri Sep 13 12:47:19 PDT 2013
Revision 1891
Guard composition contraint.
U trunk/aspire/include/aspect/simulator.h
U trunk/aspire/source/material_model/cantera.cc
U trunk/aspire/source/simulator/core.cc
U trunk/aspire/source/simulator/helper_functions.cc
http://www.dealii.org/websvn/revision.php?repname=Aspect+Repository&path=%2F&rev=1891&peg=1891
Diff:
Modified: trunk/aspire/include/aspect/simulator.h
===================================================================
--- trunk/aspire/include/aspect/simulator.h 2013-09-13 09:32:35 UTC (rev 1890)
+++ trunk/aspire/include/aspect/simulator.h 2013-09-13 19:45:22 UTC (rev 1891)
@@ -701,6 +701,8 @@
*/
void denormalize_pressure(LinearAlgebra::BlockVector &vector);
+ void normalize_compositions ();
+
/**
* Compute the maximal velocity throughout the domain. This is needed
* to compute the size of the time step.
Modified: trunk/aspire/source/material_model/cantera.cc
===================================================================
--- trunk/aspire/source/material_model/cantera.cc 2013-09-13 09:32:35 UTC (rev 1890)
+++ trunk/aspire/source/material_model/cantera.cc 2013-09-13 19:45:22 UTC (rev 1891)
@@ -59,11 +59,11 @@
for (unsigned int i = 0; i < n_species; ++i)
{
- out.compositional_sources[q][i] = molar_mass[i] * net[i];
+ out.compositional_sources[q][i] = molar_mass[i] * net[i] / out.densities[q];
out.thermal_sources[q] += enthalpy_RT[i] * out.compositional_sources[q][i];
}
- out.thermal_sources[q] *= -1.0;
+ out.thermal_sources[q] *= -1.0 * ideal_gas_mix->enthalpy_mass ();
out.thermal_expansion_coefficients[q] = ideal_gas_mix->thermalExpansionCoeff ();
out.viscosities[q] = transport->viscosity ();
}
Modified: trunk/aspire/source/simulator/core.cc
===================================================================
--- trunk/aspire/source/simulator/core.cc 2013-09-13 09:32:35 UTC (rev 1890)
+++ trunk/aspire/source/simulator/core.cc 2013-09-13 19:45:22 UTC (rev 1891)
@@ -1047,6 +1047,7 @@
solve_composition (c);
}
+ normalize_compositions ();
break;
}
Modified: trunk/aspire/source/simulator/helper_functions.cc
===================================================================
--- trunk/aspire/source/simulator/helper_functions.cc 2013-09-13 09:32:35 UTC (rev 1890)
+++ trunk/aspire/source/simulator/helper_functions.cc 2013-09-13 19:45:22 UTC (rev 1891)
@@ -80,18 +80,18 @@
+ (parameters.n_compositional_fields > 0 ?
parameters.n_compositional_fields * current_constraints_composition[0].memory_consumption () :
0)) / mb << std::endl
- << "* 3 Matrices " << (system_matrix_velocity.memory_consumption ()
- + system_matrix_temperature.memory_consumption ()
- + system_matrix_composition.memory_consumption ()) / mb << std::endl
+ << "* 3 Matrices " << (/*system_matrix_velocity.memory_consumption ()
+ +*/ system_matrix_temperature.memory_consumption ()
+ /* + system_matrix_composition.memory_consumption ()*/) / mb << std::endl
<< "* 15 Vectors " << 5 * (solution_velocity.memory_consumption ()
+ solution_temperature.memory_consumption ()
+ solution_composition.memory_consumption ()) / mb << std::endl
- << "* preconditioner " << (system_preconditioner_matrix.memory_consumption()
+ << "* preconditioner "// << (system_preconditioner_matrix.memory_consumption()
/*+ Amg_preconditioner->memory_consumption()*/
/*+Mp_preconditioner->memory_consumption()
- +T_preconditioner->memory_consumption()*/)/mb
+ +T_preconditioner->memory_consumption()*///)/mb
<< std::endl
- << " - matrix " << system_preconditioner_matrix.memory_consumption()/mb << std::endl
+ << " - matrix "/* << system_preconditioner_matrix.memory_consumption()/mb*/ << std::endl
//<< " - prec vel " << Amg_preconditioner->memory_consumption()/mb << std::endl
<< " - prec mass " << 0/*Mp_preconditioner->memory_consumption()/mb*/ << std::endl
<< " - prec T " << 0/*T_preconditioner->memory_consumption()/mb*/ << std::endl
@@ -549,6 +549,34 @@
vector.block(1).add(correction, pressure_shape_function_integrals.block(1));
}
+
+ template <int dim>
+ void Simulator<dim>::normalize_compositions ()
+ {
+ for (unsigned int i = 0; i < solution_composition.block (0).size (); ++i)
+ {
+ double sum = 0.0;
+
+ for (unsigned int c = 0; c < parameters.n_compositional_fields; ++c)
+ {
+ if (solution_composition.block (c) (i) < 0.0)
+ solution_composition.block (c) (i) = 0.0;
+
+ else
+ if (solution_composition.block (c) (i) > 1.0)
+ solution_composition.block (c) (i) = 1.0;
+
+ sum += solution_composition.block (c) (i);
+ }
+
+ solution_composition.compress (VectorOperation::add);
+
+ for (unsigned int c = 0; c < parameters.n_compositional_fields; ++c)
+ solution_composition.block (c) (i) /= sum;
+ }
+
+
+ }
}
// explicit instantiation of the functions we implement in this file
@@ -557,6 +585,7 @@
#define INSTANTIATE(dim) \
template void Simulator<dim>::normalize_pressure(LinearAlgebra::BlockVector &vector); \
template void Simulator<dim>::denormalize_pressure(LinearAlgebra::BlockVector &vector); \
+ template void Simulator<dim>::normalize_compositions (); \
template double Simulator<dim>::get_maximal_velocity (const LinearAlgebra::BlockVector &solution) const; \
template std::pair<double,double> Simulator<dim>::get_extrapolated_composition_range (const unsigned int) const; \
template std::pair<double,double> Simulator<dim>::get_extrapolated_temperature_range () const; \
More information about the CIG-COMMITS
mailing list