sct_grid_t Derived Type

type, public :: sct_grid_t

SC/TETRA メッシュクラス. 必要最低限の変数のみ保持. 変数名はフォーマットに準拠.
メッシュそのものを取り扱うのでメモリ圧迫する可能性大. ソルバ内で使う場合はサブルーチンのローカル変数として扱う方が無難(自動開放されるはず)


Inherits

type~~sct_grid_t~~InheritsGraph type~sct_grid_t sct_grid_t type~ls_scalar_t LS_Scalar_t type~sct_grid_t->type~ls_scalar_t scalars type~ls_vector_t LS_Vector_t type~sct_grid_t->type~ls_vector_t vectors type~sctregion_t sctregion_t type~sct_grid_t->type~sctregion_t region

Contents


Type-Bound Procedures

procedure, public :: includes_topology

  • private function includes_topology(this)

    格子ファイルがトポロジを含むか.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this

    Return Value logical

procedure, public :: is_fld_file

  • private function is_fld_file(this)

    ファイルがFLDか.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this

    Return Value logical

procedure, public :: print_self

  • private subroutine print_self(this, unit)

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this
    integer, intent(in) :: unit

procedure, public :: read_SCT_file

  • private subroutine read_SCT_file(this, filename)

    SCTファイルを開き,データを取得する. 事実上のコンストラクタ. 既に別のファイルを開いていた場合,そのデータを破棄して開く.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(inout) :: this
    character(len=*), intent(in) :: filename

procedure, public :: extract_original_cell_vertices

  • private subroutine extract_original_cell_vertices(this, cell2vertices)

    Sc/Tetraで出力されたセル-頂点関係の配列をそのまま出力する. セルの種類毎に並んでいないのが特徴. 頂点番号は1から始まる.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this
    integer, intent(inout), allocatable :: cell2vertices(:,:)

    頂点配列. 1st arg: vertex count, 2nd arg: cell number

procedure, public :: extract_cell_vertices

  • private subroutine extract_cell_vertices(this, tetras, pyramids, wedges, hexas)

    afdet solver との互換性のため, セルタイプごとの頂点配列を出力する. 頂点配列にはセル毎の頂点のインデックスが格納される. 頂点番号は1から始まる.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this
    integer, intent(inout), optional, allocatable :: tetras(:,:)
    integer, intent(inout), optional, allocatable :: pyramids(:,:)
    integer, intent(inout), optional, allocatable :: wedges(:,:)
    integer, intent(inout), optional, allocatable :: hexas(:,:)

procedure, public :: extract_ordered_cell_vertices

  • private subroutine extract_ordered_cell_vertices(this, cell2vertices)

    セルの種類毎に並んだ格子全体の頂点配列を作成する. セルはtetra→pyramid→wedge→hexaの順に並べられる. 頂点番号は1から始まる.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this
    integer, intent(inout), allocatable :: cell2vertices(:,:)

procedure, public :: get_2d_array_of_point_coords

  • private subroutine get_2d_array_of_point_coords(this, xyz)

    節点座標を2次元配列で出力する.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this
    real(kind=8), intent(inout), allocatable :: xyz(:,:)

procedure, public :: get_cell_types

  • private subroutine get_cell_types(this, celltypes, conversion)

    セルタイプ配列を出力する. extract_original_cell_verticesで出力したセル-節点配列に対して有効.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this
    integer, intent(inout), allocatable :: celltypes(:)

    セルタイプ配列

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

    セルタイプ番号をvtk, xdmfいずれかに変換する.

procedure, public :: get_element_count

  • private function get_element_count(this)

    要素数を取得する.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this

    Return Value integer

procedure, public :: get_vertex_count

  • private function get_vertex_count(this)

    節点数を取得する.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this

    Return Value integer

procedure, public :: get_tetrahedron_count

  • private function get_tetrahedron_count(this)

    格子に含まれるテトラ格子数を取得する.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this

    Return Value integer

procedure, public :: get_wedge_count

  • private function get_wedge_count(this)

    格子に含まれるプリズム格子数を取得する.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this

    Return Value integer

procedure, public :: get_pyramid_count

  • private function get_pyramid_count(this)

    格子に含まれるピラミッド格子数を取得する.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this

    Return Value integer

procedure, public :: get_hexahedron_count

  • private function get_hexahedron_count(this)

    格子に含まれるヘキサ格子数を取得する.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this

    Return Value integer

procedure, public :: get_region_count

  • private function get_region_count(this)

    領域の個数.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this

    Return Value integer

procedure, public :: get_region_namelist

  • private subroutine get_region_namelist(this, name_list)

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this
    type(sct_data_name_list_t), intent(inout), allocatable :: name_list(:)

procedure, public :: extract_face2vertices_on_region

  • private subroutine extract_face2vertices_on_region(this, region_num, cell2vertices, face2vertices)

    任意のregionを構成する頂点配列を取得する. 体積領域は無視する. cell2verticesはoriginalの物でなければならない.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this
    integer, intent(in) :: region_num

    region番号.

    integer, intent(in), allocatable :: cell2vertices(:,:)

    並べ替えのされていないセル-頂点配列.

    integer, intent(inout), allocatable :: face2vertices(:,:)

    regionを構成する面-頂点配列.

procedure, public :: search_scalar_data

  • private subroutine search_scalar_data(this, key, scalar)

    .fldに含まれるスカラー場データを取得する. keyにタイトル名を入れて検索する. 該当しない場合含まれるデータ一覧を表示.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this
    character(len=*), intent(in) :: key

    取り出したいデータのSC/TETRAでの名称.

    real(kind=8), intent(inout), allocatable :: scalar(:)

procedure, public :: search_vector_data

  • private subroutine search_vector_data(this, key, vector)

    .fldに含まれるベクトル場データを取得する. keyにタイトル名を入れて検索する. 該当しない場合含まれるデータ一覧を表示.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this
    character(len=*), intent(in) :: key

    取り出したいデータのSC/TETRAでの名称.

    real(kind=8), intent(inout), allocatable :: vector(:,:)

procedure, public :: get_data_titles

  • private subroutine get_data_titles(this, titles, data_type)

    .fldに含まれるデータのタイトルを取得する.

    Arguments

    Type IntentOptional Attributes Name
    class(sct_grid_t), intent(in) :: this
    type(sct_data_name_list_t), intent(inout), allocatable :: titles(:)
    character(len=*), intent(in) :: data_type