From: bangerth Date: Mon, 31 Oct 2011 17:39:22 +0000 (+0000) Subject: Merge Chih-Che's changes. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=431beb3e4d243c6711fd99907d261a35f5bd7a20;p=dealii-svn.git Merge Chih-Che's changes. git-svn-id: https://svn.dealii.org/trunk@24708 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/examples/step-43/step-43.cc b/deal.II/examples/step-43/step-43.cc index feb9f2a8cf..7ee280e02d 100644 --- a/deal.II/examples/step-43/step-43.cc +++ b/deal.II/examples/step-43/step-43.cc @@ -296,16 +296,17 @@ namespace Step43 static double compute_viscosity(const std::vector &old_saturation, - const std::vector &old_old_saturation, - const std::vector > &old_saturation_grads, - const std::vector > &old_old_saturation_grads, - const std::vector > &present_darcy_values, - const double global_u_infty, - const double global_S_variation, - const double global_Omega_diameter, - const double cell_diameter, - const double old_time_step, - const double viscosity); + const std::vector &old_old_saturation, + const std::vector > &old_saturation_grads, + const std::vector > &old_old_saturation_grads, + const std::vector > &present_darcy_values, + const double global_u_infty, + const double global_S_variation, + const double global_Omega_diameter, + const double cell_diameter, + const double old_time_step, + const double viscosity, + const double porosity); const unsigned int degree; @@ -348,7 +349,7 @@ namespace Step43 bool previous_solve_pressure_velocity_part; const double saturation_level; - const double saturation_value; + const double saturation_refinement_threshold; double n_minus_oneth_time_step; double cumulative_nth_time_step; @@ -357,6 +358,8 @@ namespace Step43 double old_time_step; unsigned int timestep_number; double viscosity; + double porosity; + double AOS_threshold; std_cxx1x::shared_ptr Amg_preconditioner; std_cxx1x::shared_ptr Mp_preconditioner; @@ -673,11 +676,13 @@ namespace Step43 previous_solve_pressure_velocity_part (false), saturation_level (2), - saturation_value (0.5), + saturation_refinement_threshold (0.5), time_step (0), old_time_step (0), viscosity (0.2), + porosity (1.0), + AOS_threshold (3.0), rebuild_saturation_matrix (true) {} @@ -1092,7 +1097,7 @@ namespace Step43 // program more efficient. // // There is one thing that needs to be - // commented ¡V since we have a separate + // commented �V since we have a separate // finite element and DoFHandler for the // saturation, we need to generate a second // FEValues object for the proper evaluation @@ -1404,7 +1409,7 @@ namespace Step43 for (unsigned int j=0; jget_dof_indices (local_dof_indices); @@ -1573,16 +1578,17 @@ namespace Step43 const double nu = compute_viscosity (old_saturation_solution_values, - old_old_saturation_solution_values, - old_grad_saturation_solution_values, - old_old_grad_saturation_solution_values, - present_darcy_solution_values, - global_u_infty, - global_S_variation, - global_Omega_diameter, - saturation_fe_values.get_cell()->diameter(), - old_time_step, - viscosity); + old_old_saturation_solution_values, + old_grad_saturation_solution_values, + old_old_grad_saturation_solution_values, + present_darcy_solution_values, + global_u_infty, + global_S_variation, + global_Omega_diameter, + saturation_fe_values.get_cell()->diameter(), + old_time_step, + viscosity, + porosity); for (unsigned int q=0; q 5.0 ) + if ( max_global_aop_indicator > AOS_threshold ) { return true; } @@ -2016,11 +2022,11 @@ namespace Step43 cell->clear_refine_flag(); if ((cell->level() < current_saturation_level) && - (std::fabs(refinement_indicators(cell_no)) > saturation_value)) + (std::fabs(refinement_indicators(cell_no)) > saturation_refinement_threshold)) cell->set_refine_flag(); else if ((cell->level() > double(n_refinement_steps)) && - (std::fabs(refinement_indicators(cell_no)) < 0.75 * saturation_value)) + (std::fabs(refinement_indicators(cell_no)) < 0.75 * saturation_refinement_threshold)) cell->set_coarsen_flag(); } } @@ -2367,22 +2373,23 @@ namespace Step43 } } - template - double - TwoPhaseFlowProblem:: - compute_viscosity (const std::vector &old_saturation, - const std::vector &old_old_saturation, - const std::vector > &old_saturation_grads, - const std::vector > &old_old_saturation_grads, - const std::vector > &present_darcy_values, - const double global_u_infty, - const double global_S_variation, - const double global_Omega_diameter, - const double cell_diameter, - const double old_time_step, - const double viscosity) +template +double +TwoPhaseFlowProblem:: +compute_viscosity (const std::vector &old_saturation, + const std::vector &old_old_saturation, + const std::vector > &old_saturation_grads, + const std::vector > &old_old_saturation_grads, + const std::vector > &present_darcy_values, + const double global_u_infty, + const double global_S_variation, + const double global_Omega_diameter, + const double cell_diameter, + const double old_time_step, + const double viscosity, + const double porosity) { - const double beta = 0.08 * dim; + const double beta = 0.27 * dim; const double alpha = 1; if (global_u_infty == 0) @@ -2399,7 +2406,7 @@ namespace Step43 for (unsigned int d=0; d