Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions docs/documentation/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -318,9 +318,9 @@ If your check enforces a physics constraint, also add a `PHYSICS_DOCS` entry (se
Scalar declarations, GPU declare lines, Doxygen descriptions, and namelist bindings are
auto-generated at build time (ninja-tracked custom command) from the `TYPED_DECLS` and `FORTRAN_ARRAY_DIMS`
tables in `toolchain/mfc/params/definitions.py`. For a plain scalar registered with
`_r()` / `_nv()` above, no manual Fortran edit is needed — reconfigure (`./mfc.sh build`)
and the generated include in `m_global_parameters_common.fpp` (compiled per target) is updated
automatically.
`_r()` / `_nv()` above, no manual Fortran edit is needed — the next build regenerates the
include in `m_global_parameters_common.fpp` (compiled per target) automatically: the
generation command is ninja-tracked against every file under `toolchain/mfc/params/`.

Still manual (not auto-generated):

Expand All @@ -333,8 +333,9 @@ Still manual (not auto-generated):
include)
- `CASE_OPT_EXTRA_LINES` in `toolchain/mfc/params/generators/fortran_gen.py` for case-optimization constants

After editing any generator or table, force regen by reconfiguring (`./mfc.sh build`) —
cached builds compile stale includes.
Editing any existing file under `toolchain/mfc/params/` (tables or generators) triggers
regeneration on the next build automatically. Only *adding a new file* there requires one
reconfigure — the dependency list is globbed at configure time.

**Step 6: Use in Fortran code**

Expand Down
5 changes: 5 additions & 0 deletions docs/module_categories.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@
"m_time_steppers",
"m_weno",
"m_riemann_solvers",
"m_riemann_state",
"m_riemann_solver_hlld",
"m_riemann_solver_hll",
"m_riemann_solver_lf",
"m_riemann_solver_hllc",
"m_muscl",
"m_variables_conversion",
"m_thinc"
Expand Down
40 changes: 40 additions & 0 deletions src/common/m_derived_types.fpp
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,46 @@ module m_derived_types
#endif
end type ic_context

!> Finite-difference state for post_process: density gradient magnitude for
!> numerical Schlieren and centered FD coefficients in x-, y-, and z-directions.
type fd_context
real(wp), allocatable, dimension(:,:,:) :: gm_rho_sf !< Density gradient magnitude for numerical Schlieren
real(wp), allocatable, dimension(:,:) :: fd_coeff_x !< FD coefficients in the x-direction
real(wp), allocatable, dimension(:,:) :: fd_coeff_y !< FD coefficients in the y-direction
real(wp), allocatable, dimension(:,:) :: fd_coeff_z !< FD coefficients in the z-direction
end type fd_context

!> Output workspace for post_process: flow variable buffers, VisIt extents/offsets,
!> directory paths, Silo/Binary file handles, and variable count.
type output_context
! Flow variable storage; q_root_sf gathers to rank 0 in 1D parallel runs
real(wp), allocatable, dimension(:,:,:) :: q_sf !< Working flow variable field (public)
real(wp), allocatable, dimension(:,:,:) :: q_root_sf !< Gathered 1D flow variable field (rank 0 only)
real(wp), allocatable, dimension(:,:,:) :: cyl_q_sf !< Cylindrical-geometry reordered field
! Single precision storage for flow variables
real(sp), allocatable, dimension(:,:,:) :: q_sf_s !< Single-precision working field (public)
real(sp), allocatable, dimension(:,:,:) :: q_root_sf_s !< Single-precision gathered 1D field
real(sp), allocatable, dimension(:,:,:) :: cyl_q_sf_s !< Single-precision cylindrical reordered field
! Spatial and data extents for VisIt visualization (Silo only)
real(wp), allocatable, dimension(:,:) :: spatial_extents !< Spatial extents per process
real(wp), allocatable, dimension(:,:) :: data_extents !< Data extents per process
! Ghost zone layer sizes (lo/hi) for subdomain connectivity in VisIt (Silo only)
integer, allocatable, dimension(:) :: lo_offset !< Ghost zone lo sizes per active direction
integer, allocatable, dimension(:) :: hi_offset !< Ghost zone hi sizes per active direction
! Cell-boundary count per active coordinate direction (Silo only)
integer, allocatable, dimension(:) :: dims !< Cell-boundary counts per active direction
! Formatted database directory paths
character(LEN=path_len + name_len) :: dbdir !< Base database directory
character(LEN=path_len + 2*name_len) :: proc_rank_dir !< Per-rank subdirectory
character(LEN=path_len + 2*name_len) :: rootdir !< Root subdirectory
! Formatted database file handles
integer :: dbroot !< Master/root file handle
integer :: dbfile !< Slave/local file handle
integer :: optlist !< Silo options list handle (per-call scratch)
! Variable count for Binary format
integer :: dbvars !< Total flow variables to write
end type output_context

type bc_patch_parameters
integer :: geometry
integer :: type
Expand Down
Loading
Loading