26 logical,
intent(in) :: prior
31 double precision :: qt
32 integer :: iigrid, igrid
52 if ((.not.prior).and.&
65 do iigrid=1,igridstail_active; igrid=igrids_active(iigrid);
69 ps(igrid)%x,.true.,src_active)
74 do iigrid=1,igridstail_active; igrid=igrids_active(iigrid);
78 ps(igrid)%x,.true.,src_active)
83 do iigrid=1,igridstail_active; igrid=igrids_active(iigrid);
87 ps(igrid)%x,.true.,src_active)
89 ps(igrid)%x,.true.,src_active)
94 do iigrid=1,igridstail_active; igrid=igrids_active(iigrid);
98 ps(igrid)%x,.true.,src_active)
100 ps(igrid)%x,.true.,src_active)
105 call mpistop(
"Error: Unknown type of sourcesplit!")
120 w,x,qsourcesplit,src_active,wCTprim)
126 integer,
intent(in) :: ixi^
l, ixo^
l, iw^lim
127 double precision,
intent(in) :: qdt, qtc, qt
128 double precision,
intent(in) :: wct(ixi^s,1:nw), x(ixi^s,1:
ndim)
129 double precision,
intent(inout) :: w(ixi^s,1:nw)
130 logical,
intent(in) :: qsourcesplit
131 logical,
intent(inout),
optional :: src_active
132 double precision,
intent(in),
optional :: wctprim(ixi^s,1:nw)
134 logical :: tmp_active
148 if (
present(src_active)) src_active = src_active .or. tmp_active
subroutine mpistop(message)
Exit MPI-AMRVAC with an error message.
update ghost cells of all blocks including physical boundaries
subroutine getbc(time, qdt, psb, nwstart, nwbc, req_diag)
do update ghost cells of all blocks including physical boundaries
This module contains definitions of global parameters and variables and some generic functions/subrou...
type(state), pointer block
Block pointer for using one block and its previous state.
logical source_split_usr
Use split or unsplit way to add user's source terms, default: unsplit.
double precision global_time
The global simulation time.
integer, parameter ndim
Number of spatial dimensions for grid variables.
integer, dimension(:), allocatable, parameter d
integer, parameter unitterm
Unit for standard output.
double precision, dimension(:,:), allocatable rnode
Corner coordinates.
double precision, dimension(ndim) dxlevel
This module defines the procedures of a physics module. It contains function pointers for the various...
logical phys_req_diagonal
Whether the physics routines require diagonal ghost cells, for example for computing a curl.
procedure(sub_global_source), pointer phys_global_source_after
procedure(sub_add_source), pointer phys_add_source
Module for handling split source terms (split from the fluxes)
integer sourcesplit
How to apply dimensional splitting to the source terms, see Discretization.
integer, parameter sourcesplit_ssf
integer, parameter sourcesplit_ssfss
integer, parameter sourcesplit_sfs
integer, parameter sourcesplit_sf
subroutine, public addsource2(qdt, ixIL, ixOL, iwLIM, qtC, wCT, qt, w, x, qsourcesplit, src_active, wCTprim)
Add source within ixO for iws: w=w+qdt*S[wCT].
subroutine, public add_split_source(prior)
Generic supertimestepping method 1) in amrvac.par in sts_list set the following parameters which have...
integer, public sourcetype_sts
pure logical function, public is_sts_initialized()
integer, parameter, public sourcetype_sts_prior
integer, parameter, public sourcetype_sts_split
integer, parameter, public sourcetype_sts_after
procedure(subr3), pointer, public sts_add_source
Module with all the methods that users can customize in AMRVAC.
procedure(source), pointer usr_source