create_element Function

public function create_element(id, global_coordinate, input) result(new_element)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: id
type(type_dp_3d), intent(in), pointer :: global_coordinate
type(type_input), intent(in) :: input

Return Value class(abst_element), allocatable


Called by

proc~~create_element~~CalledByGraph proc~create_element create_element proc~initialize_type_domain type_domain%initialize_type_domain proc~initialize_type_domain->proc~create_element proc~initialize_type_output_observation initialize_type_output_observation proc~initialize_type_output_observation->proc~create_element interface~initialize_type_output_observation type_output_observation%initialize_type_output_observation interface~initialize_type_output_observation->proc~initialize_type_output_observation proc~initialize_type_output type_output%initialize_type_output proc~initialize_type_output->interface~initialize_type_output_observation

Source Code

    function create_element(id, global_coordinate, input) result(new_element)
        implicit none
        integer(int32), intent(in) :: id
        type(type_dp_3d), pointer, intent(in) :: global_coordinate
        type(type_input), intent(in) :: input
        class(abst_element), allocatable :: new_element

        character(:), allocatable :: type_name

        type_name = input%geometry%vtk%cells(id)%cell_type_name

        select case (type_name)
        case ("Triangle")
            new_element = type_triangle_first(id, global_coordinate, input)
        case ("Quad")
            new_element = type_square_first(id, global_coordinate, input)
        case ("QuadraticTriangle")
            new_element = type_triangle_second(id, global_coordinate, input)
        case ("QuadraticQuad")
            new_element = type_square_second(id, global_coordinate, input)
        case default
            write (*, '(a)') "Error: Unknown side shape type = "//type_name
        end select

    end function create_element