motion Derived Type

type, public :: motion


Inherits

type~~motion~~InheritsGraph type~motion motion type~vector vector type~motion->type~vector law_y

Inherited by

type~~motion~~InheritedByGraph type~motion motion type~bc_poly bc_poly type~bc_poly->type~motion mot type~field field type~field->type~bc_poly bc type~scalar_field scalar_field type~scalar_field->type~field type~vector_field vector_field type~vector_field->type~field

Contents

Source Code


Components

TypeVisibility AttributesNameInitial
integer, private :: iml
real(kind=psb_dpk_), private, allocatable:: law_x(:)
type(vector), private, allocatable:: law_y(:)
integer, private :: surface_motion
integer, private :: vertex_motion

Type-Bound Procedures

procedure, public :: create_motion

  • interface

    private module subroutine create_motion(mot, surface_motion, vertex_motion, ml_file)

    Arguments

    Type IntentOptional AttributesName
    class(motion), intent(inout) :: mot
    integer, intent(in) :: surface_motion
    integer, intent(in) :: vertex_motion
    character(len=*), intent(in) :: ml_file

procedure, public :: free_motion

  • interface

    private module subroutine free_motion(mot)

    Arguments

    Type IntentOptional AttributesName
    class(motion), intent(inout) :: mot

generic, public :: get_displacement => get_motion_displacement

generic, public :: get_velocity => get_motion_velocity

generic, public :: nemo_sizeof => nemo_motion_sizeof

procedure, public :: surface_motion_

  • interface

    private module function surface_motion_(mot)

    Arguments

    Type IntentOptional AttributesName
    class(motion), intent(in) :: mot

    Return Value integer

procedure, public :: vertex_motion_

  • interface

    private module function vertex_motion_(mot)

    Arguments

    Type IntentOptional AttributesName
    class(motion), intent(in) :: mot

    Return Value integer

procedure, private :: get_motion_displacement

  • interface

    private module function get_motion_displacement(mot, x1, x2)

    Arguments

    Type IntentOptional AttributesName
    class(motion), intent(in) :: mot
    real(kind=psb_dpk_), intent(in) :: x1
    real(kind=psb_dpk_), intent(in) :: x2

    Return Value type(vector)

procedure, private :: get_motion_velocity

  • interface

    private module function get_motion_velocity(mot, x)

    Arguments

    Type IntentOptional AttributesName
    class(motion), intent(in) :: mot
    real(kind=psb_dpk_), intent(in) :: x

    Return Value type(vector)

procedure, private :: nemo_motion_sizeof

  • interface

    private elemental module function nemo_motion_sizeof(mot)

    Arguments

    Type IntentOptional AttributesName
    class(motion), intent(in) :: mot

    Return Value integer(kind=nemo_int_long_)

Source Code

    TYPE motion
        PRIVATE
        INTEGER :: surface_motion
        INTEGER :: vertex_motion
        !
        INTEGER :: iml
        REAL(psb_dpk_), ALLOCATABLE :: law_x(:)
        TYPE(vector), ALLOCATABLE :: law_y(:)
    CONTAINS
        PROCEDURE, PUBLIC :: create_motion ! Constructor
        PROCEDURE :: free_motion ! Destructor
        PROCEDURE :: surface_motion_
        PROCEDURE, PRIVATE :: get_motion_displacement, get_motion_velocity
        GENERIC, PUBLIC :: get_displacement => get_motion_displacement
        GENERIC, PUBLIC :: get_velocity => get_motion_velocity
        PROCEDURE, PRIVATE :: nemo_motion_sizeof
        GENERIC, PUBLIC :: nemo_sizeof => nemo_motion_sizeof
        PROCEDURE, PUBLIC :: vertex_motion_
    END TYPE motion