cylinder Derived Type

type, public :: cylinder


Inherits

type~~cylinder~~InheritsGraph type~cylinder cylinder type~vector vector type~cylinder->type~vector center, axis

Inherited by

type~~cylinder~~InheritedByGraph type~cylinder cylinder type~surface surface type~surface->type~cylinder my_cylinder type~mesh mesh type~mesh->type~surface surf type~pde pde type~pde->type~mesh msh type~field field type~field->type~mesh msh type~scalar_field scalar_field type~scalar_field->type~field type~vector_field vector_field type~vector_field->type~field type~scalar_pde scalar_pde type~scalar_pde->type~pde type~vector_pde vector_pde type~vector_pde->type~pde

Contents

Source Code


Components

TypeVisibility AttributesNameInitial
type(vector), private :: axis
type(vector), private :: center
real(kind=psb_dpk_), private :: r2
real(kind=psb_dpk_), private :: radius

Type-Bound Procedures

procedure, public :: get_cylinder_normal

  • interface

    private module function get_cylinder_normal(this_cylinder, this_point)

    Returns the cylinder normal

    Arguments

    Type IntentOptional AttributesName
    class(cylinder), intent(in) :: this_cylinder
    type(vector), intent(in) :: this_point

    Return Value type(vector)

procedure, public :: get_cylinder_r2

  • interface

    private module function get_cylinder_r2(this_cylinder)

    Arguments

    Type IntentOptional AttributesName
    class(cylinder), intent(in) :: this_cylinder

    Return Value real(kind=psb_dpk_)

procedure, public :: get_pt_cylinder

  • interface

    private module function get_pt_cylinder(this_cylinder, point)

    Arguments

    Type IntentOptional AttributesName
    class(cylinder), intent(in) :: this_cylinder
    type(vector), intent(in) :: point

    Return Value type(vector)

generic, public :: nemo_sizeof => nemo_cylinder_sizeof

procedure, public :: translate_cylinder

  • interface

    private module subroutine translate_cylinder(this_cylinder, offset)

    moves the definition of a cylinder in the direction of the offset vector

    Arguments

    Type IntentOptional AttributesName
    class(cylinder), intent(inout) :: this_cylinder
    type(vector), intent(in) :: offset

procedure, private :: nemo_cylinder_sizeof

  • interface

    private elemental module function nemo_cylinder_sizeof(cyl)

    Arguments

    Type IntentOptional AttributesName
    class(cylinder), intent(in) :: cyl

    Return Value integer(kind=nemo_int_long_)

Source Code

    TYPE cylinder
        PRIVATE

        TYPE(vector)      :: center       ! the location of the surface
        TYPE(vector)      :: axis         ! a unit vector pointing along the axis
        REAL(psb_dpk_) :: radius       ! the radius of the cylinder
        REAL(psb_dpk_) :: r2           ! The correlation parameter for the fit
    CONTAINS
        PROCEDURE :: get_cylinder_normal, get_cylinder_r2   ! Getters
        PROCEDURE :: get_pt_cylinder                        ! Getters, cont.
        PROCEDURE :: translate_cylinder                     ! Setters
        PROCEDURE, PRIVATE :: nemo_cylinder_sizeof
        GENERIC, PUBLIC :: nemo_sizeof => nemo_cylinder_sizeof
    END TYPE cylinder