ウイルス飛沫構造体
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 |
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 |
指定された状態にある飛沫数をカウント
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(virusDroplet_t) | :: | droplets(:) | ||||
character(len=*), | intent(in) | :: | name |
キーワード(total, floating, etc.) |
直方体領域内の飛沫のID配列を返す
Type | Intent | Optional | 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 |
状態 |
配列内の全飛沫の総体積(無次元)を計算
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(virusDroplet_t) | :: | droplets(:) |
任意の状態の飛沫のID配列を返す
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(virusDroplet_t) | :: | droplets(:) | ||||
character(len=*), | intent(in) | :: | status |
backupファイルを読み込み、飛沫配列を返す
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | fname |
飛沫の不活性化判定
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(virusDroplet_t) | :: | droplets(:) | ||||
double precision, | intent(in) | :: | time |
現在時刻(無次元) |
飛沫配列内の飛沫の座標の最大最小を返す
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(virusDroplet_t) | :: | droplets(:) | ||||
double precision, | intent(out) | :: | AreaMin(3) | |||
double precision, | intent(out) | :: | AreaMax(3) |
合体判定 $OMP parallel do private(distance, r1, r2) $OMP end parallel do
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(virusDroplet_t) | :: | droplets(:) | ||||
integer, | intent(out), | optional | :: | stat |
backupファイルの出力。 配列をループ使わずそのまま書き出すほうが多分ファイルサイズ効率が良いので、いつか修正したい。
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(virusDroplet_t) | :: | droplets(:) | ||||
character(len=*), | intent(in) | :: | fname |
VTK形式でファイル出力
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(virusDroplet_t) | :: | droplets(:) | ||||
character(len=*), | intent(in) | :: | fname | |||
logical, | optional | :: | deadline |
CSV形式で時系列データ出力
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(virusDroplet_t) | :: | droplets(:) | ||||
character(len=*), | intent(in) | :: | fname | |||
double precision, | intent(in) | :: | time | |||
logical, | intent(in) | :: | initial |
飛沫の初期半径を配列からセットする
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(virusDroplet_t) | :: | droplets(:) | ||||
double precision, | intent(in) | :: | radius(:) |
飛沫の蒸発限界半径をセットする
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(virusDroplet_t) | :: | droplets(:) | ||||
double precision, | intent(in) | :: | lowerLimitRatio |
限界半径と初期半径の比 |
飛沫の寿命を配列からセットする
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(virusDroplet_t) | :: | droplets(:) | ||||
double precision, | intent(in) | :: | deadline(:) |
飛沫の状態を一気にセットする 特定のIDの飛沫だけセットしたい場合は、ID配列を引数に渡す
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(virusDroplet_t) | :: | droplets(:) | ||||
character(len=*), | intent(in) | :: | status | |||
integer, | intent(in), | optional | :: | ID(:) |