A positivity-preserving flux-corrected transport scheme for solving scalar conservation law problems
Joshua E. Hansel1 Jean C. Ragusa1 Jean-Luc Guermond2
1Department of Nuclear Engineering
Texas A&M University
2Department of Mathematics
A positivity-preserving flux-corrected transport scheme for solving - - PowerPoint PPT Presentation
A positivity-preserving flux-corrected transport scheme for solving scalar conservation law problems Joshua E. Hansel 1 Jean C. Ragusa 1 Jean-Luc Guermond 2 1 Department of Nuclear Engineering Texas A&M University 2 Department of Mathematics
1Department of Nuclear Engineering
2Department of Mathematics
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
2/ 29
0.2 0.4 0.6 0.8 1 1.2 0.2 0.4 0.6 0.8 1 Solution x Exact Galerkin
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
3/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
4/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
5/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
6/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
7/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
8/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
9/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
10/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
11/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
12/ 29
j∈I(Si )Un
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
13/ 29
void get_matrix_row ( const SparseMatrix <double > &matrix , const unsigned int &i, std :: vector <double > &row_values , std :: vector <unsigned int > &row_indices , unsigned int &n_col) { // get first and one -past -end iterator for row SparseMatrix <double >:: const_iterator it = matrix.begin(i); SparseMatrix <double >:: const_iterator it_end = matrix.end(i); // determine number of entries in row and resize vectors accordingly n_col = it_end - it; row_values .resize(n_col ); row_indices .resize(n_col ); // loop
columns in row for (unsigned int k = 0; it != it_end; ++it , ++k) { row_values [k] = it ->value (); // get A(i,j) row_indices [k] = it ->column (); // get j } }
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
14/ 29
0.2 0.4 0.6 0.8 1 1.2 0.2 0.4 0.6 0.8 1 Solution x Exact Galerkin Low-Order DMP-min DMP-max
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
15/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
16/ 29
set Entropy function = 0.5*u*u
// create parameter handler and declare entry for entropy function ParameterHandler parameter_handler ; parameter_handler . declare_entry ("Entropy function", "u*u*u/3.0", // default Patterns :: Anything (), "String for entropy function"); // read the input file and get the entropy function parameter parameter_handler . read_input ("my_input"); std :: string entropy_string = parameter_handler .get("Entropy function"); // map of user -defined function parser constants to their values std ::map <std :: string , double > constants; // here , this is kept empty // initialize the function parser FunctionParser <dim > entropy_function ; entropy_function .initialize ("u", entropy_string , constants );
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
17/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
18/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
19/ 29
0.2 0.4 0.6 0.8 1 1.2 0.2 0.4 0.6 0.8 1 Solution x Exact Galerkin Low-Order EV
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
20/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
21/ 29
for (; cell != endc; ++ cell) // loop
lines of cell for (int line = 0; line < GeometryInfo <dim >:: lines_per_cell ; ++ line) { if (!cell ->line(line)-> user_flag_set ()) { // mark line so that the same flux isn ’t unnecessarily recomputed cell ->line(line)-> set_user_flag (); // get dof indices
cell ->line(line)-> get_dof_indices ( line_dof_indices ); unsigned int i = line_dof_indices [0]; unsigned int j = line_dof_indices [1]; // compute correction flux F(i,j) double Fij = -MC(i,j) * (dUdt(j) - dUdt(i)) + (DL(i,j) - DH(i,j)) * (U_old(j) - U_old(i)); // store flux in global sparse matrix F.set(i, j, Fij ); F.set(j, i, -Fij ); // F(j,i) = -F(i,j) } }
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
22/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
23/ 29
i
i
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
24/ 29
0.2 0.4 0.6 0.8 1 1.2 0.2 0.4 0.6 0.8 1 Solution x Exact Galerkin Low-Order EV EV-FCT DMP-min-EV-FCT DMP-max-EV-FCT
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
25/ 29
0.02 0.04 0.06 0.08 0.1 0.12 0.2 0.4 0.6 0.8 1 Angular Flux x Exact Galerkin Low-Order High-Order EV-FCT
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
26/ 29
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
27/ 29
10-8 10-7 10-6 10-5 10-4 10-3 10-2 10-1 100 101 10-4 10-3 10-2 10-1 100 L-1 Error Mesh Size Galerkin Low-Order High-Order EV-FCT m=1.00 slope m=2.00 slope m=3.00 slope 10-8 10-7 10-6 10-5 10-4 10-3 10-2 10-1 100 101 10-4 10-3 10-2 10-1 100 L-2 Error Mesh Size Galerkin Low-Order High-Order EV-FCT m=1.00 slope m=2.00 slope m=3.00 slope
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
28/ 29
10-3 10-2 10-1 100 10-4 10-3 10-2 10-1 100 L-1 Error Mesh Size Galerkin Low-Order High-Order EV-FCT m=0.25 slope m=0.50 slope m=0.75 slope 10-2 10-1 100 101 10-4 10-3 10-2 10-1 100 L-2 Error Mesh Size Galerkin Low-Order High-Order EV-FCT m=0.25 slope m=0.50 slope m=0.75 slope
Introduction
Motivation Objectives Outline
Methodology
Formulation Time Discretization FCT Scheme Overview Low-Order Scheme High-Order Scheme FCT Scheme
Results Conclusions
29/ 29