124 integer,
intent(in) :: ixI^L, ixO^L
125 double precision,
intent(in) :: x(ixI^S,1:ndim)
126 double precision,
intent(inout) :: w(ixI^S,1:nw)
134 integer,
intent(in) :: ixI^L
136 integer,
intent(in) :: ixO^L
138 integer,
intent(in) :: iB
139 double precision,
intent(in) :: qdt,qt, x(ixI^S,1:ndim)
140 double precision,
intent(inout) :: w(ixI^S,1:nw)
145 double precision,
intent(in) :: qt, qdt
152 integer,
intent(in) :: iB
165 integer,
intent(in) :: ixI^L,ixO^L,level
166 double precision,
intent(in) :: qt, qdt
167 double precision,
intent(inout) :: w(ixI^S,1:nw)
168 double precision,
intent(in) :: x(ixI^S,1:ndim)
176 integer,
intent(in) :: igrid,level,ixI^L,ixO^L
177 double precision,
intent(in) :: qt,x(ixI^S,1:ndim)
178 double precision,
intent(inout) :: w(ixI^S,1:nw)
185 integer,
intent(in) :: ixI^L,ixO^L
186 double precision,
intent(in) :: qt,x(ixI^S,1:ndim)
187 double precision,
intent(inout) :: w(ixI^S,1:nw)
195 integer,
intent(in) :: iit
196 double precision,
intent(in) :: qt
202 integer,
intent(in) :: igrid,level,ixI^L,ixO^L
203 double precision,
intent(in) :: qt,x(ixI^S,1:ndim)
204 double precision,
intent(inout) :: w(ixI^S,1:nw)
210 integer,
intent(in) :: iit
211 double precision,
intent(in) :: qt
222 integer,
intent(in) :: ixI^L,ixO^L
223 double precision,
intent(in) :: x(ixI^S,1:ndim)
224 double precision :: w(ixI^S,nw+nwauxio)
225 double precision :: normconv(0:nw+nwauxio)
231 character(len=*) :: varnames
236 subroutine source(qdt,ixI^L,ixO^L,iw^LIM,qtC,wCT,qt,w,x)
238 integer,
intent(in) :: ixI^L, ixO^L, iw^LIM
239 double precision,
intent(in) :: qdt, qtC, qt
240 double precision,
intent(in) :: wCT(ixI^S,1:nw), x(ixI^S,1:ndim)
241 double precision,
intent(inout) :: w(ixI^S,1:nw)
247 subroutine get_dt(w,ixI^L,ixO^L,dtnew,dx^D,x)
249 integer,
intent(in) :: ixI^L, ixO^L
250 double precision,
intent(in) :: dx^D, x(ixI^S,1:ndim)
251 double precision,
intent(in) :: w(ixI^S,1:nw)
252 double precision,
intent(inout) :: dtnew
258 integer,
intent(in) :: ixI^L, ixO^L
259 double precision,
intent(in) :: x(ixI^S,1:ndim)
260 double precision,
intent(in) :: wCT(ixI^S,1:nw)
261 double precision,
intent(out) :: gravity_field(ixI^S,ndim)
267 integer,
intent(in) :: ixI^L, ixO^L, dust_n_species
268 double precision,
intent(in) :: x(ixI^S, 1:ndim)
269 double precision,
intent(in) :: w(ixI^S, 1:nw)
270 double precision,
intent(out) :: &
271 fdrag(ixI^S, 1:ndir, 1:dust_n_species)
272 double precision,
intent(in) :: ptherm(ixI^S), vgas(ixI^S, ndir)
278 integer,
intent(in) :: ixI^L, ixO^L, dust_n_species
279 double precision,
intent(in) :: dx^D, x(ixI^S,1:ndim)
280 double precision,
intent(in) :: w(ixI^S,1:nw)
281 double precision,
intent(inout) :: dtdust(1:dust_n_species)
287 integer,
intent(in) :: ixI^L, ixO^L
288 double precision,
intent(in) :: x(ixI^S,1:ndim)
289 double precision,
intent(in) :: wp(ixI^S,1:nw)
290 double precision,
intent(out) :: mu(ixI^S)
296 integer,
intent(in) :: ixI^L, ixO^L
297 double precision,
intent(in) :: x(ixI^S,1:ndim)
298 double precision,
intent(in) :: w(ixI^S,1:nw)
299 double precision,
intent(out) :: pth(ixI^S)
305 integer,
intent(in) :: ixI^L, ixO^L
306 double precision,
intent(in) :: x(ixI^S,1:ndim)
307 double precision,
intent(in) :: w(ixI^S,1:nw)
308 double precision,
intent(out) :: pth(ixI^S)
314 integer,
intent(in) :: ixI^L, ixO^L
315 double precision,
intent(in) :: x(ixI^S,1:ndim)
316 double precision,
intent(in) :: w(ixI^S,1:nw)
317 double precision,
intent(out) :: adiab(ixI^S)
324 integer,
intent(in) :: ixI^L, ixO^L, idirmin
325 double precision,
intent(in) :: w(ixI^S,nw), x(ixI^S,1:ndim)
326 double precision,
intent(in) :: current(ixI^S,7-2*ndir:3)
327 double precision,
intent(out) :: eta(ixI^S)
334 integer,
intent(in) :: ixI^L, ixO^L
335 double precision,
intent(in) :: w(ixI^S,1:nw), x(ixI^S,1:ndim)
336 double precision,
intent(out):: kappa(ixI^S)
342 integer,
intent(in) :: ixI^L, ixO^L
343 double precision,
intent(in) :: w(ixI^S,1:nw), x(ixI^S,1:ndim)
344 double precision,
intent(out):: fld_lambda(ixI^S),fld_R(ixI^S)
350 integer,
intent(in) :: ixI^L, ixO^L
351 double precision,
intent(inout) :: w(ixI^S, 1:nw)
352 double precision,
intent(in) :: wprim(ixI^S, 1:nw)
353 double precision,
intent(in) :: x(ixI^S, 1:ndim)
367 subroutine refine_grid(igrid,level,ixI^L,ixO^L,qt,w,x,refine,coarsen)
369 integer,
intent(in) :: igrid, level, ixI^L, ixO^L
370 double precision,
intent(in) :: qt, w(ixI^S,1:nw), x(ixI^S,1:ndim)
371 integer,
intent(inout) :: refine, coarsen
380 integer,
intent(in) :: ixI^L,ixO^L,iflag
381 double precision,
intent(in) :: w(ixI^S,1:nw), x(ixI^S,1:ndim)
382 double precision,
intent(out) :: var(ixI^S)
388 integer,
intent(in) :: ixI^L,ixO^L
389 double precision,
intent(in) :: x(ixI^S,1:ndim)
390 double precision,
intent(inout) :: wB0(ixI^S,1:ndir)
396 integer,
intent(in) :: ixI^L,ixO^L
397 double precision,
intent(in) :: x(ixI^S,1:ndim)
398 double precision,
intent(inout) :: wJ0(ixI^S,7-2*ndir:ndir)
404 integer,
intent(in) :: ixI^L,ixO^L
405 double precision,
intent(in) :: x(ixI^S,1:ndim)
406 double precision,
intent(inout) :: w0(ixI^S,1:number_equi_vars)
412 integer,
intent(in) :: ixI^L, ixO^L, nw_in
413 double precision,
intent(in) :: w_in(ixI^S,1:nw_in)
414 double precision,
intent(in) :: x(ixI^S, 1:ndim)
415 double precision,
intent(out) :: w_out(ixI^S,1:nw)
422 double precision,
intent(in) :: wlocal(1:nw),xlocal(1:ndim),qt
423 double precision,
intent(inout) :: threshold
424 integer,
intent(in) :: level
430 integer,
intent(in) :: qunitconvert
431 character(len=20) :: userconvert_type
440 integer,
intent(in) :: ixI^L, ixO^L
441 integer,
intent(inout) :: flag
442 double precision,
intent(in) :: qt
443 double precision,
intent(inout) :: w(ixI^S,1:nw)
444 double precision,
intent(in) :: x(ixI^S,1:ndim)
450 integer,
intent(in) :: igrid,mynpayload
451 double precision,
intent(in) :: x(1:ndir),u(1:ndir),q,m,particle_time
452 double precision,
intent(out) :: mypayload(mynpayload)
457 integer,
intent(in) :: n_particles
458 double precision,
intent(out) :: x(3, n_particles)
459 double precision,
intent(out) :: v(3, n_particles)
460 double precision,
intent(out) :: q(n_particles)
461 double precision,
intent(out) :: m(n_particles)
462 logical,
intent(out) :: follow(n_particles)
468 integer,
intent(in) :: igrid
469 double precision,
intent(inout) :: x(1:ndir)
470 double precision,
intent(inout) :: v(1:ndir),q,m
471 logical,
intent(inout) :: follow
472 logical,
intent(out) :: check
478 double precision,
intent(in) :: w(ixG^T,1:nw)
479 double precision,
intent(in) :: x(ixG^T,1:ndim)
480 double precision,
intent(out) :: E(ixG^T, ndir)
481 double precision,
intent(out) :: B(ixG^T, ndir)
486 integer,
intent(in) :: ix(ndir)
487 double precision,
intent(in) :: x(ndir)
488 double precision,
intent(in) :: tloc
489 double precision,
intent(out) :: vec(ndir)
495 integer,
intent(in) :: n
496 double precision,
intent(inout) :: x(3)
497 double precision,
intent(in) :: tloc, tlocnew
501 integer,
intent(in) :: n_coarsen
502 integer,
intent(in) :: n_refine
509 integer,
intent(in) :: ixI^L, ixC^L, idir
510 double precision,
intent(in) :: xC(ixI^S,1:ndim)
511 double precision,
intent(out) :: A(ixI^S)
518 integer,
intent(in) :: ixI^L, ixO^L
519 double precision,
intent(in) :: qt, qdt
521 double precision,
intent(inout) :: fE(ixI^S,sdim:3)
551 subroutine set_wlr(ixI^L,ixO^L,qt,wLC,wRC,wLp,wRp,s,idir)
553 integer,
intent(in) :: ixI^L, ixO^L, idir
554 double precision,
intent(in) :: qt
555 double precision,
intent(inout) :: wLC(ixI^S,1:nw), wRC(ixI^S,1:nw)
556 double precision,
intent(inout) :: wLp(ixI^S,1:nw), wRp(ixI^S,1:nw)
567 subroutine set_surface(ixI^L,x,delx,exp_factor,del_exp_factor,exp_factor_primitive)
569 integer,
intent(in) :: ixI^L
570 double precision,
intent(in) :: delx(ixI^S,1:ndim), x(ixI^S,1:ndim)
571 double precision,
intent(out) :: exp_factor(ixI^S), del_exp_factor(ixI^S)
572 double precision,
intent(out) :: exp_factor_primitive(ixI^S)
576 subroutine set_field_w(igrid,ip,xf,wP,wL,numP,nwP,nwL,dL,forward,ftype,tcondi)
580 integer,
intent(in) :: igrid,ip,numP,nwP,nwL
581 double precision,
intent(in) :: xf(numP,ndim)
582 double precision,
intent(inout) :: wP(numP,nwP),wL(1+nwL)
583 double precision,
intent(in) :: dL
584 logical,
intent(in) :: forward
585 character(len=std_len),
intent(in) :: ftype,tcondi
602 integer,
intent(in) :: igrid
603 double precision,
intent(in) :: xfn(ndim)
604 double precision,
intent(inout) :: field(ndim)
605 character(len=std_len),
intent(in) :: ftype
617 integer,
intent(in) :: ixI^L, ixO^L
618 double precision,
intent(in) :: x(ixI^S,1:ndim), w(ixI^S,1:nw)
619 double precision,
intent(out):: Qgrid(ixI^S)
use different threshold in special regions for AMR to reduce/increase resolution there where nothing/...
Add names for the auxiliary variables.
this subroutine can be used in convert, to add auxiliary variables to the converted output file,...
Check arbitrary particle conditions or modifications.
flag=-1 : Treat all cells active, omit deactivation (onentry, default) flag=0 : Treat as normal domai...
Limit "dt" further if necessary, e.g. due to the special source terms. The getdt_courant (CFL conditi...
Calculation anormal pressure for hd & energy=.False.
initialize vector potential on cell edges for magnetic field
internal boundary, user defined This subroutine can be used to artificially overwrite ALL conservativ...
Associate fields to particle.
User-defined particle movement.
Calculate the 3d drag force of gas onto dust.
Calculate the time step associated with the usr drag force.
Calculate gravitational acceleration in each dimension.
for processing after the advance (PIC-MHD, e.g.)
for processing after the advance (PIC-MHD, e.g.)
This subroutine is called at the beginning of each time step by each processor. No communication is s...
this subroutine is ONLY to be used for computing auxiliary variables which happen to be non-local (li...
Enforce additional refinement or coarsening One can use the coordinate info in x and/or time qt=t_n a...
Calculation R factor for ideal gas law with partial ionization.
Here one can add a steady (time-independent) potential background field.
Here one can add a steady (time-independent) equi vars.
Here one can add a time-independent background current density.
Calculation anormal viscosity depending on space.
allow user to specify 'variables' left and right state at physical boundaries to control flux through...
Calculate w(iw)=w(iw)+qdt*SOURCE[wCT,qtC,x] within ixO for all indices iw=iwmin......
special boundary types, users must assign conservative variables in boundaries
Allow user to use their own data-postprocessing procedures.
Set user defined FLD diffusion coefficient.
Set user defined FLD flux limiter, lambda.
Special boundary type for radiation hydrodynamics module, only used to set the boundary conditions fo...
Set user defined opacity for use in diffusion coeff, heating and cooling, and radiation force.
Set the "eta" array for resistive MHD based on w or the "current" variable which has components betwe...
Calculate volumetric heating rate for TRAC broadening.
If defined, this routine is called before writing output, and it can set/modify the variables in the ...
Update payload of particles.
this is the place to compute a local auxiliary variable to be used as refinement criterion for the Lo...
This module contains definitions of global parameters and variables and some generic functions/subrou...
Module with all the methods that users can customize in AMRVAC.
procedure(rfactor), pointer usr_rfactor
procedure(source), pointer usr_source_after
procedure(source), pointer usr_source
procedure(special_resistivity), pointer usr_special_resistivity
procedure(set_adiab), pointer usr_set_adiab
procedure(special_opacity), pointer usr_special_opacity
procedure(set_adiab), pointer usr_set_gamma
procedure(process_grid), pointer usr_process_grid
procedure(sub_get_heating), pointer usr_get_heating
procedure(particle_position), pointer usr_particle_position
procedure(special_prepare_bc), pointer usr_prepare_boundary
procedure(check_particle), pointer usr_check_particle
procedure(p_no_args), pointer usr_improve_initial_condition
procedure(a_refine_threshold), pointer usr_refine_threshold
procedure(set_surface), pointer usr_set_surface
procedure(phys_dust_get_dt), pointer usr_dust_get_dt
procedure(phys_gravity), pointer usr_gravity
procedure(aux_output), pointer usr_aux_output
procedure(p_no_args), pointer usr_print_log
procedure(phys_dust_get_3d_dragforce), pointer usr_get_3d_dragforce
procedure(special_diffcoef), pointer usr_special_diffcoef
procedure(process_adv_grid), pointer usr_process_adv_grid
procedure(particle_analytic), pointer usr_particle_analytic
procedure(set_viscosity), pointer usr_set_viscosity
procedure(special_convert), pointer usr_special_convert
procedure(create_particles), pointer usr_create_particles
procedure(init_one_grid), pointer usr_init_one_grid
Initialize earch grid block data.
procedure(update_payload), pointer usr_update_payload
procedure(p_no_args), pointer usr_write_analysis
procedure(sub_modify_io), pointer usr_modify_output
procedure(p_no_args), pointer usr_before_main_loop
procedure(special_fluxlimiter), pointer usr_special_fluxlimiter
procedure(set_field_w), pointer usr_set_field_w
procedure(flag_grid), pointer usr_flag_grid
procedure(process_global), pointer usr_process_global
procedure(special_bc), pointer usr_special_bc
procedure(process_adv_global), pointer usr_process_adv_global
procedure(internal_bc), pointer usr_internal_bc
procedure(set_equi_vars), pointer usr_set_equi_vars
procedure(special_mg_bc), pointer usr_special_mg_bc
procedure(set_j0), pointer usr_set_j0
procedure(particle_fields), pointer usr_particle_fields
procedure(refine_grid), pointer usr_refine_grid
procedure(hd_pthermal), pointer usr_set_pthermal
procedure(init_vector_potential), pointer usr_init_vector_potential
procedure(p_no_args), pointer usr_set_parameters
Initialize the user's settings (after initializing amrvac)
procedure(var_for_errest), pointer usr_var_for_errest
procedure(set_b0), pointer usr_set_b0
procedure(set_electric_field), pointer usr_set_electric_field
procedure(set_wlr), pointer usr_set_wlr
procedure(transform_w), pointer usr_transform_w
procedure(after_refine), pointer usr_after_refine
procedure(get_dt), pointer usr_get_dt
procedure(set_field), pointer usr_set_field
procedure(add_aux_names), pointer usr_add_aux_names