Constant Density Incompressible Flow Solver. Available Features: + HYPRE solvers for the pressure-Poisson equation + Immersed Boundaries + Resolved Particles x Lagrangian point-particles (to-do)
Advances solution from n to n+1
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(cdifs_obj), | intent(inout) | :: | this |
The solver |
Analyze data and post to monitors
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(cdifs_obj), | intent(inout) | :: | this |
The solver |
Prepare data before run
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(cdifs_obj), | intent(inout) | :: | this |
The solver |
Process single-precision data for visualization
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(cdifs_obj), | intent(inout) | :: | this |
The solver |
Write restart data to disk
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(cdifs_obj), | intent(inout) | :: | this |
The solver |
Constant Density Incompressible Flow Solver Simulation case
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=wp), | public, | allocatable | :: | DIV(:,:,:,:,:) |
Divergence operator for velocity |
||
type(marker_set), | public | :: | IB |
Immersed boundaries |
|||
real(kind=wp), | public, | allocatable | :: | LAP(:,:,:,:,:,:) |
Viscous Laplacian for velocity Core fields |
||
type(eulerian_obj_r), | public | :: | P |
Fluid pressure |
|||
type(ResPart_set), | public | :: | RP |
Resolved particles |
|||
type(eulerian_obj_r), | public | :: | SA |
Surface density function |
|||
type(eulerian_obj_r), | public | :: | V(3) |
Fluid velocity fields |
|||
type(eulerian_obj_r), | public | :: | Vm(3) |
Velocities at mid points Masks |
|||
type(eulerian_obj_r), | public | :: | Vold(3) |
Old fluid velocity (at n) |
|||
type(bc_set), | public | :: | bcs |
Boundary conditions |
|||
type(block_obj), | public | :: | block |
Block information Mathematical tools |
|||
type(cdifs_case_obj), | public | :: | case |
Case to run Geometry |
|||
type(eulerian_obj_r), | public | :: | dP |
Pressure correction Optional components |
|||
type(eulerian_obj_r), | public | :: | divu |
Divergence field |
|||
real(kind=wp), | public | :: | edry |
Dry restitution coefficient |
|||
type(eulerian_set), | public | :: | fields |
Eulerian data container |
|||
real(kind=wp), | public | :: | gravity(3) | = | 0.0_wp |
Gravity Solver parameters |
|
type(hypre_obj), | public | :: | hypre |
HYPRE Solvers |
|||
type(eulerian_obj_r), | public | :: | ibF(3) |
Immersed boundary force |
|||
type(eulerian_obj_r), | public | :: | ibN(3) |
IB normals field Additional fields |
|||
type(eulerian_obj_r), | public | :: | ibVF |
Solid volume fraction |
|||
type(eulerian_obj_i), | public | :: | maskV(3) |
Output parmeters |
|||
integer, | public | :: | maxitp | = | 1 |
Collision substeps |
|
type(monitor_set), | public | :: | monitors |
Monitors to print to stdout and files at end of each time step |
|||
real(kind=wp), | public | :: | muc |
Coulomb friction coefficient |
|||
character(len=:), | public, | allocatable | :: | name |
Name of this solver |
||
type(op_obj), | public | :: | op |
Differential Operators |
|||
character(len=str8), | public, | allocatable | :: | output_var(:) |
Names of variables to output Flow parameters |
||
character(len=str8), | public, | allocatable | :: | outputs(:) |
List of outputs (one output can contain multiple variables) |
||
real(kind=wp), | public, | allocatable | :: | pGRAD(:,:,:,:,:) |
Gradient operator for pressure |
||
type(parallel_obj), | public, | pointer | :: | parallel | => | null() |
Associated parallel structure |
type(parser_obj), | public, | pointer | :: | parser | => | null() |
Associated parser |
type(monitor_set), | public | :: | pmonitor |
Monitor for the pressure-Poisson equation, prints at each substep |
|||
type(eulerian_obj_r), | public | :: | resV(3) |
Velocity residual |
|||
real(kind=wp), | public | :: | rho | = | 1.0_wp |
Fluid density |
|
type(eulerian_obj_r), | public | :: | rhs |
Right-hand side |
|||
integer, | public | :: | subit | = | 2 |
Solver sub-iteration Collision parameters |
|
real(kind=wp), | public | :: | tcol |
Collision time |
|||
type(timer_obj), | public, | pointer | :: | timer | => | null() |
Associated timer |
logical, | public | :: | use_IB | = | .false. |
Use Immersed Boundaries |
|
logical, | public | :: | use_RP | = | .false. |
Use Resolved Particles |
|
logical, | public | :: | use_col | = | .false. |
Use collisions |
|
real(kind=wp), | public | :: | visc | = | 1.0_wp |
Fluid viscosity |
procedure, public :: AdvanceSolution => cdifs_obj_AdvanceSolution | |
procedure, public :: Finalize => cdifs_obj_Final | |
procedure, public :: Initialize => cdifs_obj_Init | |
procedure, public :: Monitor => cdifs_obj_Monitor | |
procedure, public :: PrepareSolver => cdifs_obj_PrepareSolver | |
procedure, public :: SetInitialConditions => cdifs_obj_SetInitialConditions | |
procedure, public :: WriteOutputData => cdifs_obj_WriteOutputData | |
procedure, public :: WriteRestartData => cdifs_obj_WriteRestartData |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(cdifs_obj), | intent(inout) | :: | this |
The solver |
Initialize the solver
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(cdifs_obj), | intent(inout) | :: | this |
The solver |
||
type(timer_obj), | intent(in), | target | :: | timer |
Timer utility |
|
type(parallel_obj), | intent(in), | target | :: | parallel |
Parallel machinery |
|
type(parser_obj), | intent(in), | target | :: | parser |
Parser for input file |
Set initial conditions at n=0
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(cdifs_obj), | intent(inout) | :: | this |
The solver |