[cig-commits] r1280 - in branches/active_compositions/source: material_model simulator
dannberg at dealii.org
dannberg at dealii.org
Thu Oct 18 08:26:33 PDT 2012
Author: dannberg
Date: 2012-10-18 09:26:33 -0600 (Thu, 18 Oct 2012)
New Revision: 1280
Modified:
branches/active_compositions/source/material_model/simple.cc
branches/active_compositions/source/simulator/core.cc
branches/active_compositions/source/simulator/parameters.cc
Log:
Introduce Composition as mesh refinemen criterion.
Modified: branches/active_compositions/source/material_model/simple.cc
===================================================================
--- branches/active_compositions/source/material_model/simple.cc 2012-10-16 18:05:48 UTC (rev 1279)
+++ branches/active_compositions/source/material_model/simple.cc 2012-10-18 15:26:33 UTC (rev 1280)
@@ -39,12 +39,12 @@
const SymmetricTensor<2,dim> &,
const Point<dim> &) const
{
-// return eta;
- return (this->n_compositional_fields()>0
+ return eta;
+/* return (this->n_compositional_fields()>0
?
- (4.0*composition[0]+1) * eta
+ (6.5*composition[0]+1) * eta
:
- eta);
+ eta);*/
}
Modified: branches/active_compositions/source/simulator/core.cc
===================================================================
--- branches/active_compositions/source/simulator/core.cc 2012-10-16 18:05:48 UTC (rev 1279)
+++ branches/active_compositions/source/simulator/core.cc 2012-10-18 15:26:33 UTC (rev 1280)
@@ -788,6 +788,8 @@
Vector<float> estimated_error_per_cell_rho (triangulation.n_active_cells());
Vector<float> estimated_error_per_cell_T (triangulation.n_active_cells());
Vector<float> estimated_error_per_cell_u (triangulation.n_active_cells());
+ std::vector<Vector<float> > estimated_error_per_cell_C (parameters.n_compositional_fields,
+ Vector<float> (triangulation.n_active_cells()));
const FEValuesExtractors::Scalar pressure (dim);
const FEValuesExtractors::Scalar temperature (dim+1);
@@ -802,7 +804,8 @@
//Velocity|Temperature|Normalized density and temperature|Weighted density and temperature|Density c_p temperature
// compute density error
- if (parameters.refinement_strategy != "Temperature" && parameters.refinement_strategy != "Velocity")
+ if (parameters.refinement_strategy != "Temperature" && parameters.refinement_strategy != "Velocity"
+ && parameters.refinement_strategy != "Composition")
{
bool lookup_rho_c_p_T = (parameters.refinement_strategy == "Density c_p temperature");
@@ -942,6 +945,33 @@
estimated_error_per_cell_T = 0;
}
+ // compute the errors for composition solution
+ if (parameters.refinement_strategy == "Composition")
+ {
+ for (unsigned int i=0;i<parameters.n_compositional_fields;++i)
+ {
+ std::vector<bool> composition_component (dim+2+parameters.n_compositional_fields, false);
+ composition_component[dim+2+i] = true;
+ KellyErrorEstimator<dim>::estimate (dof_handler,
+ QGauss<dim-1>(parameters.composition_degree+1),
+ typename FunctionMap<dim>::type(),
+ solution,
+ estimated_error_per_cell_C[i],
+ composition_component,
+ 0,
+ 0,
+ triangulation.locally_owned_subdomain());
+
+ for (unsigned int k=0;k<estimated_error_per_cell.size();++k)
+ pcout << estimated_error_per_cell_C[i](k) << std::endl;
+ }
+ }
+ else
+ {
+ for (unsigned int i=0;i<parameters.n_compositional_fields;++i)
+ estimated_error_per_cell_C[i] = 0;
+ }
+
// compute the errors for the stokes solution
if (parameters.refinement_strategy == "Velocity")
{
@@ -1010,6 +1040,14 @@
for (unsigned int i=0; i<estimated_error_per_cell.size(); ++i)
estimated_error_per_cell(i) = estimated_error_per_cell_rho(i);
}
+ else if (parameters.refinement_strategy == "Composition")
+ {
+ for (unsigned int i=0; i<estimated_error_per_cell.size(); ++i)
+ estimated_error_per_cell(i) = 0;
+ for (unsigned int k=0; k<parameters.n_compositional_fields; ++k)
+ for (unsigned int i=0; i<estimated_error_per_cell.size(); ++i)
+ estimated_error_per_cell(i) += estimated_error_per_cell_C[k](i);
+ }
else
AssertThrow(false, ExcNotImplemented());
}
Modified: branches/active_compositions/source/simulator/parameters.cc
===================================================================
--- branches/active_compositions/source/simulator/parameters.cc 2012-10-16 18:05:48 UTC (rev 1279)
+++ branches/active_compositions/source/simulator/parameters.cc 2012-10-18 15:26:33 UTC (rev 1280)
@@ -299,7 +299,8 @@
"Velocity|"
"Normalized density and temperature|"
"Weighted density and temperature|"
- "Density c_p temperature"),
+ "Density c_p temperature|"
+ "Composition"),
"The method used to determine which cells to refine and which "
"to coarsen.");
prm.declare_entry ("Additional refinement times", "",
More information about the CIG-COMMITS
mailing list