Skip to content
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

Merged
merged 3 commits into from May 11, 2017

Conversation

hlokavarapu
Copy link
Contributor

The log output of SolKz benchmark at a global refinement level of 5:

harsha_lv@godavari:~/ClionProjects/aspect/benchmarks/solkz$ mpirun -np 1 aspect solkz.prm 
-----------------------------------------------------------------------------
-- This is ASPECT, the Advanced Solver for Problems in Earth's ConvecTion.
--     . version 2.0.0-pre
--     . running in DEBUG mode
--     . running with 1 MPI process
--     . using Trilinos
-----------------------------------------------------------------------------

Loading shared library <./libsolkz.so>

Number of active cells: 1,024 (on 6 levels)
Number of degrees of freedom: 13,764 (8,450+1,089+4,225)

*** Timestep 0:  t=0 years
   Rebuilding Stokes preconditioner...
   Solving Stokes system... 47+0 iterations.
      Relative Stokes residual after nonlinear iteration 1: 1
   Solving Stokes system... 0+0 iterations.
      Relative Stokes residual after nonlinear iteration 2: 9.61484e-08

   Postprocessing:
     Errors u_L1, p_L1, u_L2, p_L2: 1.255365e-08, 1.599227e-04, 3.451232e-08, 2.647014e-04
     Writing graphical output:      output/solution/solution-00000

Termination requested by criterion: end time

The log output of SolKz benchmark using compositional fields at a global refinement level of 5:

harsha_lv@godavari:~/ClionProjects/aspect/benchmarks/solkz/compositional_fields$ mpirun -np 1 aspect solkz_compositional_fields.prm 
-----------------------------------------------------------------------------
-- This is ASPECT, the Advanced Solver for Problems in Earth's ConvecTion.
--     . version 2.0.0-pre
--     . running in DEBUG mode
--     . running with 1 MPI process
--     . using Trilinos
-----------------------------------------------------------------------------

Loading shared library <./libsolkz_compositional_fields.so>

Number of active cells: 1,024 (on 6 levels)
Number of degrees of freedom: 34,179 (8,450+3,072+4,225+9,216+9,216)

*** Timestep 0:  t=0 years
   Rebuilding Stokes preconditioner...
   Solving Stokes system... 48+0 iterations.
      Relative Stokes residual after nonlinear iteration 1: 1
   Solving Stokes system... 0+0 iterations.
      Relative Stokes residual after nonlinear iteration 2: 7.95719e-08

   Postprocessing:
     Writing graphical output:      output/solution/solution-00000
     Errors u_L1, p_L1, u_L2, p_L2: 1.263331e-08, 1.961224e-04, 3.505067e-08, 3.422689e-04

Termination requested by criterion: end time

The log output of SolKz benchmark using active particles at a global refinement level of 5:

harsha_lv@godavari:~/ClionProjects/aspect/benchmarks/solkz/compositional_fields$ mpirun -np 1 aspect solkz_particles.prm 
-----------------------------------------------------------------------------
-- This is ASPECT, the Advanced Solver for Problems in Earth's ConvecTion.
--     . version 2.0.0-pre
--     . running in DEBUG mode
--     . running with 1 MPI process
--     . using Trilinos
-----------------------------------------------------------------------------

Loading shared library <./libsolkz_compositional_fields.so>

Number of active cells: 1,024 (on 6 levels)
Number of degrees of freedom: 34,179 (8,450+3,072+4,225+9,216+9,216)

*** Timestep 0:  t=0 years
   Skipping temperature solve because RHS is zero.
   Rebuilding Stokes preconditioner...
   Solving Stokes system... 47+0 iterations.

   Postprocessing:
     Writing particle output:       output/particles/particles-00000
     Writing graphical output:      output/solution/solution-00000
     Errors u_L1, p_L1, u_L2, p_L2: 3.056647e-07, 4.168362e-03, 4.669234e-07, 6.572723e-03

Termination requested by criterion: end time

@gassmoeller
Copy link
Member

/run-tests

Copy link
Member

@gassmoeller gassmoeller left a 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
Copy link
Member

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
Copy link
Member

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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment as above

Copy link
Contributor Author

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>
Copy link
Member

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.

Copy link
Contributor Author

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"
@egpuckett
Copy link
Contributor

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; } ) &
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

very nice!

@tjhei
Copy link
Member

tjhei commented May 10, 2017

can you add a changelog entry?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants