New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor SolKz benchmark, add compositional field benchmark, and add active particle benchmark #1539
Conversation
/run-tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks quite good. The one thing I would like to discuss is the discontinuous vs continuous pressures. Is it important for you to use the discontinuous pressure for this benchmark? I.e. is it important enough to confuse users that the temperature benchmark is set up differently than the composition benchmark?
@@ -0,0 +1,38 @@ | |||
#ifndef SOLKZ_SOLKZ_COMPOSITIONAL_FIELDS_H | |||
#define SOLKZ_SOLKZ_COMPOSITIONAL_FIELDS_H |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
make this ASPECT_SOLKZ_...
|
||
subsection Discretization | ||
set Stokes velocity polynomial degree = 2 | ||
set Use locally conservative discretization = true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason you use discontinous pressures for the compositional benchmark but continuous pressures for the existing solkz benchmark? This will confuse people trying to run this benchmark. It also confused me to see different numbers of degrees of freedom in the results you posted in the pull request. It also makes me wonder if the difference in accuracy is due to this difference in the input file. Can you change this to false
and still get similar results? Then please do this. Lets discuss what to do, if that is not the case.
|
||
subsection Discretization | ||
set Stokes velocity polynomial degree = 2 | ||
set Use locally conservative discretization = true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as above
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SolKz (base case):
Q2_Q1
h
3 Errors u_L1, p_L1, u_L2, p_L2: 5.710496e-07, 2.769692e-03, 1.071151e-06, 4.210709e-03
4 Errors u_L1, p_L1, u_L2, p_L2: 9.024102e-08, 6.588213e-04, 2.330051e-07, 1.068890e-03
5 Errors u_L1, p_L1, u_L2, p_L2: 1.255368e-08, 1.599227e-04, 3.451230e-08, 2.647015e-04
6 Errors u_L1, p_L1, u_L2, p_L2: 1.603879e-09, 3.975991e-05, 4.499684e-09, 6.568000e-05
7 Errors u_L1, p_L1, u_L2, p_L2: 2.016031e-10, 9.926911e-06, 5.685278e-10, 1.637434e-05
SolKz (refactored):
Q2_Q1
h
3 Errors u_L1, p_L1, u_L2, p_L2: 5.710496e-07, 2.769692e-03, 1.071151e-06, 4.210709e-03
4 Errors u_L1, p_L1, u_L2, p_L2: 9.024102e-08, 6.588213e-04, 2.330051e-07, 1.068890e-03
5 Errors u_L1, p_L1, u_L2, p_L2: 1.255368e-08, 1.599227e-04, 3.451230e-08, 2.647015e-04
6 Errors u_L1, p_L1, u_L2, p_L2: 1.603879e-09, 3.975991e-05, 4.499684e-09, 6.568000e-05
7 Errors u_L1, p_L1, u_L2, p_L2: 2.016031e-10, 9.926911e-06, 5.685278e-10, 1.637434e-05
SolKz (Compositional fields)
Q2_Q1
h
3 Errors u_L1, p_L1, u_L2, p_L2: 5.656321e-07, 2.770715e-03, 1.040702e-06, 4.210785e-03
4 Errors u_L1, p_L1, u_L2, p_L2: 8.922945e-08, 6.610882e-04, 2.291564e-07, 1.066119e-03
5 Errors u_L1, p_L1, u_L2, p_L2: 1.251153e-08, 1.600241e-04, 3.441676e-08, 2.645674e-04
6 Errors u_L1, p_L1, u_L2, p_L2: 1.602676e-09, 3.976684e-05, 4.497021e-09, 6.567566e-05
7 Errors u_L1, p_L1, u_L2, p_L2: 2.015608e-10, 9.927347e-06, 5.684425e-10, 1.637421e-05
SolKz (Active Particles using cell average interpolation)
Q2_Q1_particles
h
3 Errors u_L1, p_L1, u_L2, p_L2: 3.924171e-06, 3.080755e-03, 6.435722e-06, 5.349705e-03
4 Errors u_L1, p_L1, u_L2, p_L2: 9.465434e-07, 1.042225e-03, 1.527446e-06, 2.848889e-03
5 Errors u_L1, p_L1, u_L2, p_L2: 2.396696e-07, 3.813762e-04, 3.798516e-07, 1.430330e-03
6 Errors u_L1, p_L1, u_L2, p_L2: 5.976014e-08, 1.148414e-04, 9.487535e-08, 6.125869e-04
7 Errors u_L1, p_L1, u_L2, p_L2: 1.494555e-08, 3.211711e-05, 2.367541e-08, 2.381214e-04
@@ -1,856 +1,4 @@ | |||
#include <aspect/material_model/simple.h> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you just move all of this into the header file? That is ok.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, pretty much the refactoring was equivalent to the command $ mv solkz.cc solkz.h
😄
…ure element for solkz_particles and solkz_compositional_field benchmark"
9a1578f
to
1d3d81b
Compare
I think this looks good. Is there a manual entry required? If not, how are users going to understand what we have done with these benchmarks. I think we should at least have an entry in the manual that points to the paper, that will presumably be written some day soon. |
@@ -86,6 +86,8 @@ echo "Please be patient..." | |||
|
|||
( (cd solkz; make_lib && run_all_prms ) || { echo "FAILED"; exit 1; } ) & | |||
|
|||
( (cd solkz/compositional_fields; make_lib && run_all_prms ) || { echo "FAILED"; exit 1; } ) & |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
very nice!
can you add a changelog entry? |
The log output of SolKz benchmark at a global refinement level of 5:
The log output of SolKz benchmark using compositional fields at a global refinement level of 5:
The log output of SolKz benchmark using active particles at a global refinement level of 5: