cdifs_obj Derived Type

type, public, extends(solver_obj) :: cdifs_obj

Constant Density Incompressible Flow Solver Simulation case


Inherits

type~~cdifs_obj~~InheritsGraph type~cdifs_obj cdifs_obj type~bc_set bc_set type~cdifs_obj->type~bc_set bcs type~block_obj block_obj type~cdifs_obj->type~block_obj block type~cdifs_case_obj cdifs_case_obj type~cdifs_obj->type~cdifs_case_obj case type~eulerian_obj_i eulerian_obj_i type~cdifs_obj->type~eulerian_obj_i maskV type~eulerian_obj_r eulerian_obj_r type~cdifs_obj->type~eulerian_obj_r V, P, dP, SA, ibVF, ibF, ibN, Vold, resV, rhs, divu, Vm type~eulerian_set eulerian_set type~cdifs_obj->type~eulerian_set fields type~hypre_obj hypre_obj type~cdifs_obj->type~hypre_obj hypre type~marker_set marker_set type~cdifs_obj->type~marker_set IB type~monitor_set monitor_set type~cdifs_obj->type~monitor_set monitors, pmonitor type~op_obj op_obj type~cdifs_obj->type~op_obj op type~respart_set ResPart_set type~cdifs_obj->type~respart_set RP type~solver_obj solver_obj type~cdifs_obj->type~solver_obj type~bc_set->type~block_obj block type~hashtbl_obj hashtbl_obj type~bc_set->type~hashtbl_obj tbl type~parallel_obj parallel_obj type~bc_set->type~parallel_obj parallel type~region_obj region_obj type~bc_set->type~region_obj region MPI_Datatype MPI_Datatype type~block_obj->MPI_Datatype gc_slab_r, gc_slab_i type~axis_obj axis_obj type~block_obj->type~axis_obj axis, axis_partition type~block_obj->type~parallel_obj parallel type~case_obj case_obj type~cdifs_case_obj->type~case_obj type~eulerian_obj_base eulerian_obj_base type~eulerian_obj_i->type~eulerian_obj_base type~eulerian_obj_r->type~eulerian_obj_base type~eulerian_set->type~block_obj block type~eulerian_ptr eulerian_ptr type~eulerian_set->type~eulerian_ptr field type~eulerian_set->type~hashtbl_obj tbl type~eulerian_set->type~parallel_obj parallel type~hypre_obj->type~block_obj block type~hypre_obj->type~eulerian_obj_i irow MPI_Comm MPI_Comm type~hypre_obj->MPI_Comm comm c_ptr c_ptr type~hypre_obj->c_ptr p_rhs_values, p_sol_values, p_values, p_rows, p_cols, p_tmpi type~hypre_obj->type~parallel_obj parallel type~marker_set->type~monitor_set monitors type~marker_set->type~op_obj op type~lagrangian_set lagrangian_set type~marker_set->type~lagrangian_set type~parser_obj parser_obj type~marker_set->type~parser_obj parser type~timer_obj timer_obj type~marker_set->type~timer_obj timer type~monitor_set->type~hashtbl_obj tbl type~monitor_obj monitor_obj type~monitor_set->type~monitor_obj m type~monitor_set->type~parallel_obj parallel type~op_obj->type~block_obj block type~op_obj->type~eulerian_obj_i mask type~op_obj->type~parallel_obj parallel type~respart_set->type~marker_set ib type~respart_set->type~monitor_set monitors type~respart_set->type~op_obj op type~respart_set->type~lagrangian_set type~respart_set->type~parser_obj parser type~respart_set->type~timer_obj timer type~solver_obj->type~parallel_obj parallel type~solver_obj->type~parser_obj parser type~solver_obj->type~timer_obj timer type~case_obj->type~block_obj block type~case_obj->type~parallel_obj parallel type~case_obj->type~parser_obj parser type~eulerian_obj_base->type~block_obj block type~eulerian_obj_base->type~parallel_obj parallel type~eulerian_ptr->type~eulerian_obj_base p type~sllist_obj sllist_obj type~hashtbl_obj->type~sllist_obj vec type~lagrangian_set->type~block_obj cblock, block type~lagrangian_set->MPI_Datatype MPI_TYPE type~lagrangian_set->type~parallel_obj parallel type~lagrangian_obj lagrangian_obj type~lagrangian_set->type~lagrangian_obj p, sample type~lagrangian_set->type~sllist_obj neighbors type~column_obj column_obj type~monitor_obj->type~column_obj col type~parallel_obj->MPI_Datatype REAL_SP, REAL_DP, REAL_WP, COMPLEX_SP, COMPLEX_DP, COMPLEX_WP, INTEGER, INT8, LOGICAL MPI_Info MPI_Info type~parallel_obj->MPI_Info mpi_info type~communicators communicators type~parallel_obj->type~communicators comm type~patch patch type~parallel_obj->type~patch rank type~entry_obj entry_obj type~parser_obj->type~entry_obj entries type~region_obj->type~block_obj region type~region_obj->type~hashtbl_obj tbl type~bc_obj bc_obj type~region_obj->type~bc_obj BC type~timer_obj->type~parser_obj parser type~communicators->MPI_Comm w, g type~sllist_obj->type~sllist_obj child

Components

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


Type-Bound Procedures

procedure, public :: AdvanceSolution => cdifs_obj_AdvanceSolution

  • interface

    private module subroutine cdifs_obj_AdvanceSolution(this)

    Advances solution from n to n+1

    Arguments

    Type IntentOptional Attributes Name
    class(cdifs_obj), intent(inout) :: this

    The solver

procedure, public :: Finalize => cdifs_obj_Final

  • private subroutine cdifs_obj_Final(this)

    Arguments

    Type IntentOptional Attributes Name
    class(cdifs_obj), intent(inout) :: this

    The solver

procedure, public :: Initialize => cdifs_obj_Init

  • private subroutine cdifs_obj_Init(this, timer, parallel, parser)

    Initialize the solver

    Arguments

    Type IntentOptional 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

procedure, public :: Monitor => cdifs_obj_Monitor

  • interface

    private module subroutine cdifs_obj_Monitor(this)

    Analyze data and post to monitors

    Arguments

    Type IntentOptional Attributes Name
    class(cdifs_obj), intent(inout) :: this

    The solver

procedure, public :: PrepareSolver => cdifs_obj_PrepareSolver

  • interface

    private module subroutine cdifs_obj_PrepareSolver(this)

    Prepare data before run

    Arguments

    Type IntentOptional Attributes Name
    class(cdifs_obj), intent(inout) :: this

    The solver

procedure, public :: SetInitialConditions => cdifs_obj_SetInitialConditions

procedure, public :: WriteOutputData => cdifs_obj_WriteOutputData

  • interface

    private module subroutine cdifs_obj_WriteOutputData(this)

    Process single-precision data for visualization

    Arguments

    Type IntentOptional Attributes Name
    class(cdifs_obj), intent(inout) :: this

    The solver

procedure, public :: WriteRestartData => cdifs_obj_WriteRestartData

  • interface

    private module subroutine cdifs_obj_WriteRestartData(this)

    Write restart data to disk

    Arguments

    Type IntentOptional Attributes Name
    class(cdifs_obj), intent(inout) :: this

    The solver