virusDroplet_m Module


Used by

  • module~~virusdroplet_m~~UsedByGraph module~virusdroplet_m virusDroplet_m module~dropletgenerator_m dropletGenerator_m module~dropletgenerator_m->module~virusdroplet_m module~dropletmotionsimulation dropletMotionSimulation module~dropletmotionsimulation->module~virusdroplet_m module~dropletmotionsimulation->module~dropletgenerator_m program~dropletcount dropletCount program~dropletcount->module~virusdroplet_m program~translate translate program~translate->module~virusdroplet_m program~main MAIN program~main->module~dropletmotionsimulation

Contents


Derived Types

type, public ::  virusDroplet_t

ウイルス飛沫構造体

Components

Type Visibility Attributes Name Initial
double precision, public :: position(3)
double precision, public :: velocity(3) = 0.d0
integer, public :: coalesID = 0
integer, public :: refCellID = 0
integer, public :: adhesBoundID = 0

Type-Bound Procedures

procedure , public , :: isFloating => isDropletFloating Function
procedure , public , :: coalescenceID => dropletCoalescneceID Function
procedure , public , :: get_radius Function
procedure , public , :: evaporation Subroutine
procedure , public , :: isEvaporating Function
procedure , public , :: stop_droplet Subroutine

Functions

public function dropletCounter(droplets, name)

指定された状態にある飛沫数をカウント

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)
character(len=*), intent(in) :: name

キーワード(total, floating, etc.)

Return Value integer

public function dropletIDinBox(droplets, min_cdn, max_cdn, status) result(ID_array)

直方体領域内の飛沫のID配列を返す

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)
double precision, intent(in) :: min_cdn(3)

直方体領域の最小座標

double precision, intent(in) :: max_cdn(3)

直方体領域の最大座標

integer, intent(in), optional :: status

状態

Return Value integer, allocatable, (:)

public function dropletTotalVolume(droplets)

配列内の全飛沫の総体積(無次元)を計算

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)

Return Value doubleprecision

public function dropletIDinState(droplets, status) result(ID_array)

任意の状態の飛沫のID配列を返す

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)
character(len=*), intent(in) :: status

Return Value integer, allocatable, (:)

public function read_backup(fname) result(droplets)

backupファイルを読み込み、飛沫配列を返す

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: fname

Return Value type(virusDroplet_t), allocatable, (:)


Subroutines

public subroutine survival_check(droplets, time)

飛沫の不活性化判定

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)
double precision, intent(in) :: time

現在時刻(無次元)

public subroutine get_dropletsArea(droplets, AreaMin, AreaMax)

飛沫配列内の飛沫の座標の最大最小を返す

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)
double precision, intent(out) :: AreaMin(3)
double precision, intent(out) :: AreaMax(3)

public subroutine coalescence_check(droplets, stat)

合体判定 $OMP parallel do private(distance, r1, r2) $OMP end parallel do

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)
integer, intent(out), optional :: stat

public subroutine output_backup(droplets, fname)

backupファイルの出力。 配列をループ使わずそのまま書き出すほうが多分ファイルサイズ効率が良いので、いつか修正したい。

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)
character(len=*), intent(in) :: fname

public subroutine output_droplet_VTK(droplets, fname, deadline)

VTK形式でファイル出力

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)
character(len=*), intent(in) :: fname
logical, optional :: deadline

public subroutine output_droplet_CSV(droplets, fname, time, initial)

CSV形式で時系列データ出力

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)
character(len=*), intent(in) :: fname
double precision, intent(in) :: time
logical, intent(in) :: initial

public subroutine set_initialRadius(droplets, radius)

飛沫の初期半径を配列からセットする

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)
double precision, intent(in) :: radius(:)

public subroutine set_radiusLowerLimit(droplets, lowerLimitRatio)

飛沫の蒸発限界半径をセットする

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)
double precision, intent(in) :: lowerLimitRatio

限界半径と初期半径の比

public subroutine set_virusDeadline(droplets, deadline)

飛沫の寿命を配列からセットする

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)
double precision, intent(in) :: deadline(:)

public subroutine set_dropletStatus(droplets, status, ID)

飛沫の状態を一気にセットする 特定のIDの飛沫だけセットしたい場合は、ID配列を引数に渡す

Arguments

Type IntentOptional Attributes Name
type(virusDroplet_t) :: droplets(:)
character(len=*), intent(in) :: status
integer, intent(in), optional :: ID(:)