pf_mod_pfasst Module

Module containing the routines to create, setup, and destroy the main data structure in PFASST


Uses

  • module~~pf_mod_pfasst~~UsesGraph module~pf_mod_pfasst pf_mod_pfasst module~pf_mod_dtype pf_mod_dtype module~pf_mod_pfasst->module~pf_mod_dtype module~pf_mod_comm_mpi pf_mod_comm_mpi module~pf_mod_pfasst->module~pf_mod_comm_mpi iso_c_binding iso_c_binding module~pf_mod_dtype->iso_c_binding module~pf_mod_comm_mpi->module~pf_mod_dtype module~pf_mod_mpi pf_mod_mpi module~pf_mod_comm_mpi->module~pf_mod_mpi module~pf_mod_timer pf_mod_timer module~pf_mod_comm_mpi->module~pf_mod_timer module~pf_mod_timer->module~pf_mod_dtype

Used by

  • module~~pf_mod_pfasst~~UsedByGraph module~pf_mod_pfasst pf_mod_pfasst module~pfasst pfasst module~pfasst->module~pf_mod_pfasst module~pf_mod_parallel pf_mod_parallel module~pfasst->module~pf_mod_parallel module~pf_mod_parallel_oc pf_mod_parallel_oc module~pf_mod_parallel_oc->module~pf_mod_pfasst module~pf_mod_comm pf_mod_comm module~pf_mod_parallel_oc->module~pf_mod_comm module~pf_mod_comm->module~pf_mod_pfasst module~pf_mod_parallel->module~pf_mod_pfasst module~pf_mod_parallel->module~pf_mod_comm

Contents


Subroutines

public subroutine pf_pfasst_create(pf, comm, nlevels, fname, nocmd)

Create a PFASST object gather some input from a file and command line fname present, read inputs from a file (and maybe command line) fname not present, only call read_opts if we want command line read set communicator

Read more…

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout) :: pf

Main pfasst object

type(pf_comm_t), intent(inout), target:: comm

Communicator

integer, intent(in), optional :: nlevels

number of pfasst levels

character(len=*), intent(in), optional :: fname

Input file for pfasst parameters

logical, intent(in), optional :: nocmd

Determines if command line variables are to be read

public subroutine pf_pfasst_setup(pf)

Setup both the PFASST object and the comm object loop over levels to set parameters Loop over levels setting interpolation and restriction matrices (in time)

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout), target:: pf

Main pfasst structure

public subroutine pf_level_setup(pf, lev)

Setup (allocate) PFASST level If the level is already setup, calling this again will allocate (or deallocate) tauQ appropriately. do some sanity checks (re)allocate tauQ (may to need create/destroy tauQ dynamically when doing AMR) skip the rest if we're already allocated allocate flat buffers for send, and recv allocate nodes, flags, and integration matrices make quadrature matrices Allocate and compute all the matrices initialize sweeper allocate solution and function arrays

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(in) :: pf

Main pfasst structure

class(pf_level_t), intent(inout), target:: lev

Level to set up

public subroutine pf_pfasst_destroy(pf)

Deallocate PFASST object destroy all levels deallocate pfasst pointer arrays

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout) :: pf

Main pfasst structure

public subroutine pf_level_destroy(lev, nlevels)

Deallocate PFASST level deallocate flat buffers for communcition deallocate nodes, flags, and integration matrices deallocate solution and function storage

Read more…

Arguments

Type IntentOptional AttributesName
class(pf_level_t), intent(inout) :: lev

level to destroy

integer :: nlevels

number of pfasst levels

public subroutine pf_read_opts(pf, read_cmd, fname)

Subroutine to read pfasst options from file and command line define the namelist for reading set local variables to pf_pfasst defaults open the file "fname" and read the pfasst namelist overwrite parameters defined on command line re-assign the pfasst internals Sanity check

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout) :: pf
logical, intent(in) :: read_cmd
character(len=*), intent(in), optional :: fname

public subroutine pf_print_options(pf, un_opt, show_mats_opt)

Subroutine to write out run parameters

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout) :: pf
integer, intent(in), optional :: un_opt
logical, intent(in), optional :: show_mats_opt

public subroutine pf_time_interpolation_matrix(f_nodes, f_nnodes, c_nodes, c_nnodes, tmat)

Subroutine to make the matrices for interpolation between noodes

Arguments

Type IntentOptional AttributesName
real(kind=pfdp), intent(in) :: f_nodes(0:f_nnodes-1)

quadrature nodes on fine level

integer, intent(in) :: f_nnodes

number of nodes on fine level

real(kind=pfdp), intent(in) :: c_nodes(0:c_nnodes-1)

quadrature nodes on coarse level

integer, intent(in) :: c_nnodes

number of nodes on coarse level

real(kind=pfdp), intent(out) :: tmat(0:f_nnodes-1,0:c_nnodes-1)

Interpolation matrix to compute