grans_obj Derived Type

type, public, extends(solver_obj) :: grans_obj

Granular flow solver with resolved particles Simulation case


Inherits

type~~grans_obj~~InheritsGraph type~grans_obj grans_obj type~block_obj block_obj type~grans_obj->type~block_obj block type~eulerian_obj_r eulerian_obj_r type~grans_obj->type~eulerian_obj_r ibVF, PVF, SA, Fp type~eulerian_set eulerian_set type~grans_obj->type~eulerian_set fields type~grans_case_obj grans_case_obj type~grans_obj->type~grans_case_obj case type~hypre_obj hypre_obj type~grans_obj->type~hypre_obj hypre type~marker_set marker_set type~grans_obj->type~marker_set IB type~monitor_set monitor_set type~grans_obj->type~monitor_set monitors type~particle_set particle_set type~grans_obj->type~particle_set PP type~respart_set ResPart_set type~grans_obj->type~respart_set RP type~solver_obj solver_obj type~grans_obj->type~solver_obj 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~parallel_obj parallel_obj type~block_obj->type~parallel_obj parallel type~eulerian_obj_base 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~hashtbl_obj hashtbl_obj type~eulerian_set->type~hashtbl_obj tbl type~eulerian_set->type~parallel_obj parallel type~case_obj case_obj type~grans_case_obj->type~case_obj type~hypre_obj->type~block_obj block 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~eulerian_obj_i eulerian_obj_i type~hypre_obj->type~eulerian_obj_i irow type~hypre_obj->type~parallel_obj parallel type~marker_set->type~monitor_set monitors type~lagrangian_set lagrangian_set type~marker_set->type~lagrangian_set type~op_obj op_obj type~marker_set->type~op_obj op 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~particle_set->type~lagrangian_set type~respart_set->type~marker_set ib type~respart_set->type~monitor_set monitors type~respart_set->type~lagrangian_set type~respart_set->type~op_obj op 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_obj_i->type~eulerian_obj_base 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~op_obj->type~block_obj block type~op_obj->type~eulerian_obj_i mask type~op_obj->type~parallel_obj parallel 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~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
type(eulerian_obj_r), public :: Fp(3)

Particle Eulerian forcing Physical parameters

type(marker_set), public :: IB

Immersed solids (walls)

type(particle_set), public :: PP

Point particles

type(eulerian_obj_r), public :: PVF

Particle volume fraction

type(ResPart_set), public :: RP

Resolved particles

type(eulerian_obj_r), public :: SA

Surface Area Density

integer, public :: VF_MaxIT

VF iterations

real(kind=wp), public :: VF_MaxTol

VF maximum relative tolerance

integer, public :: VF_it

Sub-iterations for VF solves

real(kind=wp), public :: VF_rel

Relative error at end of VF solves

character(len=:), public, allocatable :: VF_solver

Name of VF solver to use

type(block_obj), public :: block

Block information Mathematical tools

type(grans_case_obj), public :: case

Case to run Geometry

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 Core data

type(eulerian_obj_r), public :: ibVF

Solid volume fraction (walls)

real(kind=wp), public :: intRHS

Magnitude of RHS in VF equation

type(monitor_set), public :: monitors

Monitors to print to stdout and files

real(kind=wp), public :: muc

Coulomb friction factor Output parmeters

character(len=:), public, allocatable :: name

Name of this solver

character(len=str8), public, allocatable :: output_var(:)

Names of variables to output Volume fraction solver

character(len=str8), public, allocatable :: outputs(:)

List of outputs (one output can contain multiple variables)

type(parallel_obj), public, pointer :: parallel => null()

Associated parallel structure

type(parser_obj), public, pointer :: parser => null()

Associated parser

real(kind=wp), public :: rel_error_max = 1.0e-6_wp

Maximum relative error

integer, public :: subit = 0

Solver sub-iteration

integer, public :: subit_max = 40

Maximum sub-iterations

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_PP = .false.

Use Point Particles

logical, public :: use_RP = .false.

Use Resolved Particles

logical, public :: use_col = .false.

Collision parameter


Type-Bound Procedures

procedure, public :: AdvanceSolution => grans_obj_AdvanceSolution

  • interface

    private module subroutine grans_obj_AdvanceSolution(this)

    Advances solver from n to n+1

    Arguments

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

    The solver

procedure, public :: Finalize => grans_obj_Final

  • private subroutine grans_obj_Final(this)

    Deallocate data

    Arguments

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

    The solver

procedure, public :: Initialize => grans_obj_Init

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

    Initialize the solver

    Arguments

    Type IntentOptional Attributes Name
    class(grans_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 => grans_obj_Monitor

  • interface

    private module subroutine grans_obj_Monitor(this)

    Analyze data and post to monitors

    Arguments

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

    The solver

procedure, public :: PrepareSolver => grans_obj_PrepareSolver

  • interface

    private module subroutine grans_obj_PrepareSolver(this)

    Prepare data before run

    Arguments

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

    The solver

procedure, public :: SetInitialConditions => grans_obj_SetInitialConditions

procedure, public :: WriteOutputData => grans_obj_WriteOutputData

  • interface

    private module subroutine grans_obj_WriteOutputData(this)

    Process single-precision data for visualization

    Arguments

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

    The solver

procedure, public :: WriteRestartData => grans_obj_WriteRestartData

  • interface

    private module subroutine grans_obj_WriteRestartData(this)

    Write restart data to disk

    Arguments

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

    The solver