Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
6
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Switch to GitLab Next
Sign in / Register
Toggle navigation
A
afivo
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Test Cases
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MD-CWI-NL
afivo
Commits
c242dcde
Commit
c242dcde
authored
Mar 30, 2020
by
Jannis Teunissen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
af_advance: pass step number to integrator
parent
457d431c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
16 additions
and
9 deletions
+16
-9
examples/advection_v2.f90
examples/advection_v2.f90
+2
-1
examples/euler_gas_dynamics.f90
examples/euler_gas_dynamics.f90
+2
-1
src/m_af_advance.f90
src/m_af_advance.f90
+12
-7
No files found.
examples/advection_v2.f90
View file @
c242dcde
...
...
@@ -207,7 +207,7 @@ contains
end
select
end
function
solution
subroutine
forward_euler
(
tree
,
dt
,
dt_lim
,
time
,
s_deriv
,
s_prev
,
s_out
)
subroutine
forward_euler
(
tree
,
dt
,
dt_lim
,
time
,
s_deriv
,
s_prev
,
s_out
,
istep
)
type
(
af_t
),
intent
(
inout
)
::
tree
real
(
dp
),
intent
(
in
)
::
dt
real
(
dp
),
intent
(
in
)
::
time
...
...
@@ -215,6 +215,7 @@ contains
integer
,
intent
(
in
)
::
s_deriv
integer
,
intent
(
in
)
::
s_prev
integer
,
intent
(
in
)
::
s_out
integer
,
intent
(
in
)
::
istep
real
(
dp
)
::
wmax
(
NDIM
)
call
flux_generic_tree
(
tree
,
1
,
[
i_phi
+
s_deriv
],
[
i_flux
],
wmax
,
&
...
...
examples/euler_gas_dynamics.f90
View file @
c242dcde
...
...
@@ -162,7 +162,7 @@ program KT_euler
contains
subroutine
forward_euler
(
tree
,
dt
,
dt_lim
,
time
,
s_deriv
,
s_prev
,
s_out
)
subroutine
forward_euler
(
tree
,
dt
,
dt_lim
,
time
,
s_deriv
,
s_prev
,
s_out
,
istep
)
type
(
af_t
),
intent
(
inout
)
::
tree
real
(
dp
),
intent
(
in
)
::
dt
real
(
dp
),
intent
(
out
)
::
dt_lim
...
...
@@ -170,6 +170,7 @@ contains
integer
,
intent
(
in
)
::
s_deriv
integer
,
intent
(
in
)
::
s_prev
integer
,
intent
(
in
)
::
s_out
integer
,
intent
(
in
)
::
istep
real
(
dp
)
::
wmax
(
NDIM
)
call
flux_generic_tree
(
tree
,
n_vars
,
variables
+
s_deriv
,
fluxes
,
wmax
,
&
...
...
src/m_af_advance.f90
View file @
c242dcde
...
...
@@ -11,11 +11,15 @@ module m_af_advance
integer
,
parameter
,
public
::
af_heuns_method
=
2
integer
,
parameter
,
public
::
af_midpoint_method
=
3
!> How many steps the time integrators take
integer
,
parameter
,
public
::
&
af_advance_num_steps
(
n_integrators
)
=
[
1
,
2
,
2
]
!> How many variable copies are required for the time integrators
integer
,
parameter
::
req_copies
(
n_integrators
)
=
[
1
,
2
,
2
]
integer
,
parameter
::
req_copies
(
n_integrators
)
=
af_advance_num_steps
interface
subroutine
subr_feuler
(
tree
,
dt
,
dt_lim
,
time
,
s_deriv
,
s_prev
,
s_out
)
subroutine
subr_feuler
(
tree
,
dt
,
dt_lim
,
time
,
s_deriv
,
s_prev
,
s_out
,
istep
)
import
type
(
af_t
),
intent
(
inout
)
::
tree
real
(
dp
),
intent
(
in
)
::
dt
!< Time step
...
...
@@ -24,6 +28,7 @@ module m_af_advance
integer
,
intent
(
in
)
::
s_deriv
!< State to compute derivatives from
integer
,
intent
(
in
)
::
s_prev
!< Previous state
integer
,
intent
(
in
)
::
s_out
!< Output state
integer
,
intent
(
in
)
::
istep
!< Step of the integrator
end
subroutine
subr_feuler
end
interface
...
...
@@ -49,16 +54,16 @@ contains
select
case
(
time_integrator
)
case
(
af_forward_euler
)
call
forward_euler
(
tree
,
dt
,
dt_lim
,
time
,
0
,
0
,
0
)
call
forward_euler
(
tree
,
dt
,
dt_lim
,
time
,
0
,
0
,
0
,
1
)
time
=
time
+
dt
case
(
af_midpoint_method
)
call
forward_euler
(
tree
,
0.5_dp
*
dt
,
dt_lim
,
time
,
0
,
0
,
1
)
call
forward_euler
(
tree
,
dt
,
dt_lim
,
time
,
1
,
0
,
0
)
call
forward_euler
(
tree
,
0.5_dp
*
dt
,
dt_lim
,
time
,
0
,
0
,
1
,
1
)
call
forward_euler
(
tree
,
dt
,
dt_lim
,
time
,
1
,
0
,
0
,
2
)
time
=
time
+
dt
case
(
af_heuns_method
)
call
forward_euler
(
tree
,
dt
,
dt_lim
,
time
,
0
,
0
,
1
)
call
forward_euler
(
tree
,
dt
,
dt_lim
,
time
,
0
,
0
,
1
,
1
)
time
=
time
+
dt
call
forward_euler
(
tree
,
dt
,
dt_lim
,
time
,
1
,
1
,
1
)
call
forward_euler
(
tree
,
dt
,
dt_lim
,
time
,
1
,
1
,
1
,
2
)
call
combine_substeps
(
tree
,
i_cc
,
2
,
[
0
,
1
],
[
0.5_dp
,
0.5_dp
],
0
)
end
select
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment