update Module

This module march the solution is time.


Uses

  • module~~update~~UsesGraph module~update update module~global_sa global_sa module~update->module~global_sa module~wall_dist wall_dist module~update->module~wall_dist module~scheme scheme module~update->module~scheme module~lusgs lusgs module~update->module~lusgs module~utils utils module~update->module~utils module~plusgs plusgs module~update->module~plusgs module~boundary_state_reconstruction boundary_state_reconstruction module~update->module~boundary_state_reconstruction module~global_sst global_sst module~update->module~global_sst module~viscosity viscosity module~update->module~viscosity module~gradients gradients module~update->module~gradients module~bc_primitive bc_primitive module~update->module~bc_primitive module~face_interpolant face_interpolant module~update->module~face_interpolant module~global_kkl global_kkl module~update->module~global_kkl module~interface1 interface1 module~update->module~interface1 module~time time module~update->module~time module~vartypes vartypes module~update->module~vartypes module~viscous viscous module~update->module~viscous module~source source module~update->module~source iso_fortran_env iso_fortran_env module~global_sa->iso_fortran_env module~wall_dist->module~utils module~wall_dist->module~vartypes module~scheme->module~utils module~scheme->module~face_interpolant module~scheme->module~vartypes module~ausm ausm module~scheme->module~ausm module~ausmp ausmP module~scheme->module~ausmp module~van_leer van_leer module~scheme->module~van_leer module~ldfss0 ldfss0 module~scheme->module~ldfss0 module~ausmup ausmUP module~scheme->module~ausmup module~slau slau module~scheme->module~slau module~lusgs->module~global_sa module~lusgs->module~wall_dist module~lusgs->module~utils module~lusgs->module~global_sst module~lusgs->module~viscosity module~lusgs->module~gradients module~lusgs->module~global_kkl module~lusgs->module~vartypes module~plusgs->module~global_sa module~plusgs->module~wall_dist module~plusgs->module~utils module~plusgs->module~global_sst module~plusgs->module~viscosity module~plusgs->module~gradients module~plusgs->module~global_kkl module~plusgs->module~vartypes module~boundary_state_reconstruction->module~face_interpolant module~boundary_state_reconstruction->module~vartypes module~global_sst->iso_fortran_env module~viscosity->module~global_sa module~viscosity->module~wall_dist module~viscosity->module~utils module~viscosity->module~global_sst module~viscosity->module~gradients module~viscosity->module~global_kkl module~viscosity->module~vartypes module~copy_bc copy_bc module~viscosity->module~copy_bc module~gradients->module~utils module~gradients->module~vartypes module~bc_primitive->module~wall_dist module~bc_primitive->module~global_sst module~bc_primitive->module~vartypes module~ft_bc FT_bc module~bc_primitive->module~ft_bc module~bc_primitive->module~copy_bc module~face_interpolant->module~utils module~face_interpolant->module~vartypes module~ppm ppm module~face_interpolant->module~ppm module~muscl muscl module~face_interpolant->module~muscl module~weno weno module~face_interpolant->module~weno module~weno_nm weno_NM module~face_interpolant->module~weno_nm module~global_kkl->iso_fortran_env module~interface1->module~utils module~interface1->module~vartypes module~mapping mapping module~interface1->module~mapping mpi mpi module~interface1->mpi module~time->module~utils module~time->module~viscosity module~time->module~face_interpolant module~time->module~vartypes module~read read module~time->module~read module~time->mpi module~vartypes->iso_fortran_env module~viscous->module~global_sa module~viscous->module~utils module~viscous->module~global_sst module~viscous->module~viscosity module~viscous->module~gradients module~viscous->module~global_kkl module~viscous->module~vartypes module~source->module~global_sa module~source->module~wall_dist module~source->module~utils module~source->module~global_sst module~source->module~viscosity module~source->module~gradients module~source->module~global_kkl module~source->module~vartypes module~cc CC module~source->module~cc module~mapping->module~vartypes module~ausm->module~vartypes module~ausmp->module~face_interpolant module~ausmp->module~vartypes module~ppm->module~vartypes module~muscl->module~vartypes module~ft_bc->module~vartypes module~ft_bc->module~copy_bc module~copy_bc->module~vartypes module~read->module~vartypes module~van_leer->module~vartypes module~ldfss0->module~vartypes module~weno->module~vartypes module~cc->module~wall_dist module~cc->module~utils module~cc->module~vartypes module~ausmup->module~vartypes module~weno_nm->module~vartypes module~slau->module~vartypes

Used by

  • module~~update~~UsedByGraph module~update update module~solver solver module~solver->module~update program~main main program~main->module~solver

Contents


Variables

TypeVisibility AttributesNameInitial
real(kind=wp), private, dimension(:,:,:,:), allocatable:: U_store

Array to store the intermediate solution

real(kind=wp), private, dimension(:,:,:,:), allocatable:: R_store

Array to store the intermediate Residue

real(kind=wp), private, dimension(:,:,:,:), allocatable, target:: aux

Array to store some auxilary intermediate variables

real(kind=wp), private, dimension(:), allocatable:: u1

Variable array old for each cell center

real(kind=wp), private, dimension(:), allocatable:: u2

Variable array new for each cell center

real(kind=wp), private, dimension(:), allocatable:: R

Residue array for each cell center

integer, private :: imx
integer, private :: jmx
integer, private :: kmx
integer, private :: n_var

Subroutines

public subroutine setup_update(control, scheme, flow, dims)

Allocate memory to variables required based on the time-integration scheme.

Arguments

Type IntentOptional AttributesName
type(controltype), intent(in) :: control

Control parameters

type(schemetype), intent(in) :: scheme

finite-volume Schemes

type(flowtype), intent(in) :: flow

Information about fluid flow: freestream-speed, ref-viscosity,etc.

type(extent), intent(in) :: dims

Extent of the domain:imx,jmx,kmx

public subroutine get_next_solution(qp, Temp, residue, delta_t, cells, F, G, H, Ifaces, Jfaces, Kfaces, control, scheme, flow, bc, dims)

Get solution at next time-step using scheme given in the input file.

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(inout), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+2,1:dims%n_var):: qp

Store primitive variable at cell center

real(kind=wp), intent(inout), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+2):: Temp

Store Temperature variable at cell center

real(kind=wp), intent(inout), dimension(:, :, :, :):: residue

Store residue at each cell-center

real(kind=wp), intent(inout), dimension(1:dims%imx-1, 1:dims%jmx-1, 1:dims%kmx-1):: delta_t

Local time increment value at each cell center Store residue at each cell-center

type(celltype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+2):: cells

Input cell quantities: volume

real(kind=wp), intent(inout), dimension(:, :, :, :):: F

Store fluxes throught the I faces

real(kind=wp), intent(inout), dimension(:, :, :, :):: G

Store fluxes throught the J faces

real(kind=wp), intent(inout), dimension(:, :, :, :):: H

Store fluxes throught the K faces

type(facetype), intent(in), dimension(-2:dims%imx+3,-2:dims%jmx+2,-2:dims%kmx+2):: Ifaces

Store face quantites for I faces

type(facetype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+3,-2:dims%kmx+2):: Jfaces

Store face quantites for J faces

type(facetype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+3):: Kfaces

Store face quantites for K faces

type(controltype), intent(in) :: control

Control parameters

type(schemetype), intent(in) :: scheme

finite-volume Schemes

type(flowtype), intent(in) :: flow

Information about fluid flow: freestream-speed, ref-viscosity,etc.

type(boundarytype), intent(in) :: bc

boundary conditions and fixed values

type(extent), intent(in) :: dims

Extent of the domain:imx,jmx,kmx

private subroutine update_with(qp, residue, delta_t, cells, scheme, flow, type, time_factor, store_factor, use, Rn, un)

A generalized scheme to updat the solution explicitly using any RK method and even first order euler explicit.

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(inout), dimension(-2:imx+2,-2:jmx+2,-2:kmx+2,1:n_var), target:: qp

Store primitive variable at cell center

real(kind=wp), intent(in), dimension(:, :, :, :):: residue

Store residue at each cell-center

real(kind=wp), intent(in), dimension(1:imx-1,1:jmx-1,1:kmx-1):: delta_t

Local time increment value at each cell center

type(celltype), intent(in), dimension(-2:imx+2,-2:jmx+2,-2:kmx+2):: cells

Cell center quantities: volume

type(schemetype), intent(in) :: scheme

finite-volume Schemes

type(flowtype), intent(in) :: flow

Information about fluid flow: freestream-speed, ref-viscosity,etc.

character(len=*), intent(in) :: type
real(kind=wp), intent(in), optional :: time_factor
real(kind=wp), intent(in), optional :: store_factor
logical, intent(in), optional :: use
real(kind=wp), intent(inout), optional dimension(1:imx-1,1:jmx-1,1:kmx-1,1:n_var):: Rn
real(kind=wp), intent(in), optional dimension(-2:imx+2,-2:jmx+2,-2:kmx+2,1:n_var), target:: un

private subroutine get_total_conservative_Residue(qp, Temp, cells, residue, F, G, H, Ifaces, Jfaces, Kfaces, control, scheme, flow, bc, dims)

For each iteration it apply boundary conditions, use higher order method to reconstruct state at face, evalute fluxes at each face, calculate inviscid residual, and introuduce additional residual due to viscosity, turbulence and source terms.

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(inout), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+2,1:dims%n_var):: qp

Store primitive variable at cell center

real(kind=wp), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+2):: Temp

Store Temperature variable at cell center

type(celltype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+2):: cells

Input cell quantities: volume

real(kind=wp), intent(inout), dimension(:, :, :, :):: residue

Store residue at each cell-center

real(kind=wp), intent(inout), dimension(:, :, :, :):: F

Store fluxes throught the I faces

real(kind=wp), intent(inout), dimension(:, :, :, :):: G

Store fluxes throught the J faces

real(kind=wp), intent(inout), dimension(:, :, :, :):: H

Store fluxes throught the K faces

type(facetype), intent(in), dimension(-2:dims%imx+3,-2:dims%jmx+2,-2:dims%kmx+2):: Ifaces

Input varaible which stores I faces' area and unit normal

type(facetype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+3,-2:dims%kmx+2):: Jfaces

Input varaible which stores J faces' area and unit normal

type(facetype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+3):: Kfaces

Input varaible which stores K faces' area and unit normal

type(controltype), intent(in) :: control

Control parameters

type(schemetype), intent(in) :: scheme

finite-volume Schemes

type(flowtype), intent(in) :: flow

Information about fluid flow: freestream-speed, ref-viscosity,etc.

type(boundarytype), intent(in) :: bc

boundary conditions and fixed values

type(extent), intent(in) :: dims

Extent of the domain:imx,jmx,kmx