►Nm_octree_mg_1d | |
Cmg_lvl_t | Lists of blocks per refinement level |
Cmg_box_t | Box data structure |
Cmg_buf_t | Buffer type (one is used for each pair of communicating processes) |
Cmg_comm_t | |
Cmg_bc_t | |
Cmg_timer_t | |
Cmg_t | |
Cmg_subr_bc | To fill ghost cells near physical boundaries |
►Nm_octree_mg_2d | |
Cmg_lvl_t | Lists of blocks per refinement level |
Cmg_box_t | Box data structure |
Cmg_buf_t | Buffer type (one is used for each pair of communicating processes) |
Cmg_comm_t | |
Cmg_bc_t | |
Cmg_timer_t | |
Cmg_t | |
Cmg_subr_bc | To fill ghost cells near physical boundaries |
►Nm_octree_mg_3d | |
Cmg_lvl_t | Lists of blocks per refinement level |
Cmg_box_t | Box data structure |
Cmg_buf_t | Buffer type (one is used for each pair of communicating processes) |
Cmg_comm_t | |
Cmg_bc_t | |
Cmg_timer_t | |
Cmg_t | |
Cmg_subr_bc | To fill ghost cells near physical boundaries |
►Nmod_convert | |
Csub_convert_vars | |
Cconvert_vars_method | |
►Nmod_forest | Module with basic grid data structures |
Ctree_node_ptr | Pointer to a tree_node |
Ctree_node | The data structure that contains information about a tree node/grid block |
►Nmod_ghostcells_update | Update ghost cells of all blocks including physical boundaries |
Cwbuffer | |
►Nmod_mhd_phys | Magneto-hydrodynamics module |
Cfun_kin_en | |
►Nmod_multigrid_coupling | Module to couple the octree-mg library to AMRVAC. This file uses the VACPP preprocessor, but its use is kept to a minimum |
Cafter_new_tree | |
►Nmod_particle_base | Module with shared functionality for all the particle movers |
Cparticle_ptr | |
Cparticle_t | |
Csub_fill_gridvars | |
Csub_define_additional_gridvars | |
Csub_fill_additional_gridvars | |
Csub_integrate | |
Cfun_destroy | |
►Nmod_physicaldata | |
Cstate | |
Cstate_sub | |
Cgrid_field | |
Cct_velocity | Velocities store for constrained transport |
►Nmod_physics | This module defines the procedures of a physics module. It contains function pointers for the various supported routines. An actual physics module has to set these pointers to its implementation of these routines |
Csub_check_params | |
Csub_set_mg_bounds | |
Csub_boundary_adjust | |
Csub_convert | |
Csub_modify_wLR | |
Csub_get_cmax | |
Csub_get_a2max | |
Csub_get_tcutoff | |
Csub_trac_after_setdt | |
Csub_get_v | |
Csub_get_H_speed | |
Csub_get_cbounds | |
Csub_get_flux | |
Csub_add_source_geom | |
Csub_add_source | |
Csub_global_source | Add global source terms on complete domain (potentially implicit) |
Csub_clean_divb | Clean initial divb |
Csub_set_equi_vars | Set equilibrium variables other than b0 (e.g. p0 and rho0) |
Csub_special_advance | Add special advance in each advect step |
Csub_get_dt | |
Csub_check_w | |
Csub_get_pthermal | |
Csub_get_auxiliary | |
Csub_get_auxiliary_prim | |
Csub_get_tgas | |
Csub_get_trad | |
Csub_write_info | |
Csub_small_values | |
Csub_get_var | |
Csub_get_ct_velocity | |
Csub_update_faces | |
Csub_face_to_center | |
Csub_evaluate_implicit | |
Csub_implicit_update | |
Csub_update_temperature | |
►Nmod_physics_hllc | |
Csub_diffuse_hllcd | |
Csub_get_lCD | |
Csub_get_wCD | |
Csub_hllc_init_species | |
►Nmod_physics_roe | |
Csub_average | |
Csub_get_eigenjump | |
Csub_rtimes | |
►Nmod_radiative_cooling | Module radiative cooling – add optically thin radiative cooling for HD and MHD |
Cget_subr1 | |
Crc_fluid | |
►Nmod_supertimestepping | Generic supertimestepping method 1) in amrvac.par in sts_list set the following parameters which have the default values: sts_dtpar=0.9,sts_ncycles=1000,sts_method=1,sourcetype_sts=2 These parametes are general for all the methods added TODO: check if there is any need to have terms implemented with different sets of parameters, and these cannot be general anymore 2) then add programatically in the code a term with the subroutine add_sts_method This method takes as parameters a function which calculated the explicit timestep associated with the term, a subroutine which sets the source term types for the BC and the BC are generated from the variables startVar:endVar flux conservation (fixconserve) is done for the variables specified by ixChangeStart, ixChangeN, ixChangeFixC The following two steps are done in this way as in fortran it is not allowed to pass null function pointers as parameters: 3)in order to to have hooks before_first_cycle, after_last_cycle (e.g. conversion from e_tot to e_int before first sts cycle and back from e_int to e_tot after the last STS cycle for the thermal conductivity module) add them just afterwards with the subroutine set_conversion_methods_to_head 4) to add the hook for error handling (e.g check small values in the thermal conductivity module ) call set_error_handling_to_head which takes as parameter a subroutine the error handling subroutine is called before setting BC |
Csubr2 | Interface for the function which gets the timestep in dtnew in the derived type |
Csubr_e | Interface for error handling subroutine in the derived type |
Csubr5 | Interface for the subroutines before_first_cycle and after_last_cycle in the derived type |
Csubr3 | For the subroutines in this module, which do not depend on the term, but on the parameter sts_method = 1/2 in the parameter file sts_add_source |
►Nmod_thermal_conduction | Thermal conduction for HD and MHD Adaptation of mod_thermal_conduction for the mod_supertimestepping In order to use it set use_mhd_tc=1 (for the mhd impl) or 2 (for the hd impl) in mhd_list (for the mhd module both hd and mhd impl can be used) or use_new_hd_tc in hd_list parameters to true (for the hd module, hd implementation has to be used) The TC is set by calling one tc_init_hd_for_total_energy and tc_init_mhd_for_total_energy might The second argument: ixArray has to be [rho_,e_,mag(1)] for mhd (Be aware that the other components of the mag field are assumed consecutive) and [rho_,e_] for hd additionally when internal energy equation is solved, an additional element of this array is eaux_: the index of the internal energy variable |
Cget_var_subr | |
Ctc_fluid | |
►Nmod_thermal_emission | |
Cget_subr1 | |
Cte_fluid | |
►Nmod_twofl_phys | Magneto-hydrodynamics module |
Cmask_subroutine2 | |
►Nmod_usr_methods | Module with all the methods that users can customize in AMRVAC |
Cp_no_args | |
Cinit_one_grid | Initialize one grid |
Cspecial_bc | Special boundary types, users must assign conservative variables in boundaries |
Cspecial_mg_bc | Special boundary type for radiation hydrodynamics module, only used to set the boundary conditions for the radiation energy |
Cinternal_bc | Internal boundary, user defined This subroutine can be used to artificially overwrite ALL conservative variables in a user-selected region of the mesh, and thereby act as an internal boundary region. It is called just before external (ghost cell) boundary regions will be set by the BC selection. Here, you could e.g. want to introduce an extra variable (nwextra, to be distinguished from nwaux) which can be used to identify the internal boundary region location. Its effect should always be local as it acts on the mesh |
Cprocess_grid | This subroutine is ONLY to be used for computing auxiliary variables which happen to be non-local (like div v), and are in no way used for flux computations. As auxiliaries, they are also not advanced |
Csub_modify_io | If defined, this routine is called before writing output, and it can set/modify the variables in the w array |
Cprocess_global | This subroutine is called at the beginning of each time step by each processor. No communication is specified, so the user has to implement MPI routines if information has to be shared |
Cprocess_adv_grid | For processing after the advance (PIC-MHD, e.g.) |
Cprocess_adv_global | For processing after the advance (PIC-MHD, e.g.) |
Caux_output | This subroutine can be used in convert, to add auxiliary variables to the converted output file, for further analysis using tecplot, paraview, .... these auxiliary values need to be stored in the nw+1:nw+nwauxio slots |
Cadd_aux_names | Add names for the auxiliary variables |
Csource | Calculate w(iw)=w(iw)+qdt*SOURCE[wCT,qtC,x] within ixO for all indices iw=iwmin...iwmax. wCT is at time qCT |
Cget_dt | Limit "dt" further if necessary, e.g. due to the special source terms. The getdt_courant (CFL condition) and the getdt subroutine in the AMRVACPHYS module have already been called |
Cphys_gravity | Calculate gravitational acceleration in each dimension |
Cphys_dust_get_3d_dragforce | Calculate the 3d drag force of gas onto dust |
Cphys_dust_get_dt | Calculate the time step associated with the usr drag force |
Cphys_visco | Calculation anormal viscosity depending on space |
Chd_pthermal | Calculation anormal pressure for hd & energy=.False |
CRfactor | Calculation R factor for ideal gas law with partial ionization |
Cspecial_resistivity | Set the "eta" array for resistive MHD based on w or the "current" variable which has components between idirmin and 3 |
Cspecial_opacity | Set user defined opacity for use in diffusion coeff, heating and cooling, and radiation force |
Cspecial_aniso_opacity | Set user defined, anisotropic opacity for use in diffusion coeff, heating and cooling, and radiation force |
Cspecial_opacity_qdot | Set user defined opacity for use in diffusion coeff, heating and cooling, and radiation force. Overwrites special_opacity |
Cspecial_fluxlimiter | Set user defined FLD flux limiter, lambda |
Cspecial_diffcoef | Set user defined FLD diffusion coefficient |
Crefine_grid | Enforce additional refinement or coarsening One can use the coordinate info in x and/or time qt=t_n and w(t_n) values w. you must set consistent values for integers refine/coarsen: refine = -1 enforce to not refine refine = 0 doesn't enforce anything refine = 1 enforce refinement coarsen = -1 enforce to not coarsen coarsen = 0 doesn't enforce anything coarsen = 1 enforce coarsen e.g. refine for negative first coordinate x < 0 as if (any(x(ix^S,1) < zero)) refine=1 |
Cvar_for_errest | This is the place to compute a local auxiliary variable to be used as refinement criterion for the Lohner error estimator only -->it is then requiring and iflag>nw note that ixO=ixI=ixG, hence the term local (gradients need special attention!) |
Cset_B0 | Here one can add a steady (time-independent) potential background field |
Cset_J0 | Here one can add a time-independent background current density |
Cset_equi_vars | Here one can add a steady (time-independent) equi vars |
Ctransform_w | Adjust w when restart from dat file with different w variables |
Ca_refine_threshold | Use different threshold in special regions for AMR to reduce/increase resolution there where nothing/something interesting happens |
Cspecial_convert | Allow user to use their own data-postprocessing procedures |
Cflag_grid | Flag=-1 : Treat all cells active, omit deactivation (onentry, default) flag=0 : Treat as normal domain flag=1 : Treat as passive, but reduce by safety belt flag=2 : Always treat as passive |
Cupdate_payload | Update payload of particles |
Ccreate_particles | Create particles |
Ccheck_particle | Check arbitrary particle conditions or modifications |
Cparticle_fields | Associate fields to particle |
Cparticle_analytic | |
Cparticle_position | User-defined particle movement |
Cafter_refine | |
Cinit_vector_potential | Initialize vector potential on cell edges for magnetic field |
Cset_electric_field | |
Cset_wLR | Allow user to specify 'variables' left and right state at physical boundaries to control flux through the boundary surface |
Cset_surface | |
Cset_field_w | |
Cset_field | |