domain_element Module


Uses

  • module~~domain_element~~UsesGraph module~domain_element domain_element iso_fortran_env iso_fortran_env module~domain_element->iso_fortran_env module~module_core module_core module~domain_element->module~module_core module~module_input module_input module~domain_element->module~module_input stdlib_logger stdlib_logger module~domain_element->stdlib_logger core_check_nan core_check_nan module~module_core->core_check_nan module~core_allocate core_allocate module~module_core->module~core_allocate module~core_check_range core_check_range module~module_core->module~core_check_range module~core_deallocate core_deallocate module~module_core->module~core_deallocate module~core_error core_error module~module_core->module~core_error module~core_fortran_utils core_fortran_utils module~module_core->module~core_fortran_utils module~core_string_utils core_string_utils module~module_core->module~core_string_utils module~core_types core_types module~module_core->module~core_types module~core_unique core_unique module~module_core->module~core_unique module~core_vtk core_vtk module~module_core->module~core_vtk module~core_vtk_vtk_constants core_vtk_vtk_constants module~module_core->module~core_vtk_vtk_constants module~inout_input inout_input module~module_input->module~inout_input module~core_allocate->iso_fortran_env module~core_allocate->module~core_error module~core_check_range->iso_fortran_env module~core_deallocate->iso_fortran_env module~core_deallocate->module~core_error module~core_error->iso_fortran_env module~core_error->stdlib_logger module~core_fortran_utils_memory_stats_wrapper core_fortran_utils_memory_stats_wrapper module~core_fortran_utils->module~core_fortran_utils_memory_stats_wrapper module~core_fortran_utils_signal_flag_wrapper core_fortran_utils_signal_flag_wrapper module~core_fortran_utils->module~core_fortran_utils_signal_flag_wrapper module~core_fortran_utils_system_info_wrapper core_fortran_utils_system_info_wrapper module~core_fortran_utils->module~core_fortran_utils_system_info_wrapper module~core_string_utils->iso_fortran_env module~core_string_utils->module~core_allocate module~core_types_array core_types_array module~core_types->module~core_types_array module~core_types_gauss core_types_gauss module~core_types->module~core_types_gauss module~core_types_pointer core_types_pointer module~core_types->module~core_types_pointer module~core_types_variable core_types_variable module~core_types->module~core_types_variable module~core_types_vector core_types_vector module~core_types->module~core_types_vector module~core_unique->iso_fortran_env module~core_unique->module~core_allocate stdlib_sorting stdlib_sorting module~core_unique->stdlib_sorting module~core_vtk->iso_fortran_env module~core_vtk->module~core_allocate module~core_vtk->module~core_deallocate module~core_vtk->module~core_unique module~core_vtk->module~core_vtk_vtk_constants iso_c_binding iso_c_binding module~core_vtk->iso_c_binding module~core_vtk->module~core_types_array module~core_vtk_vtk_wrapper core_vtk_vtk_wrapper module~core_vtk->module~core_vtk_vtk_wrapper module~core_vtk_vtu_wrapper core_vtk_vtu_wrapper module~core_vtk->module~core_vtk_vtu_wrapper module~core_vtk->stdlib_sorting module~core_vtk_vtk_constants->iso_fortran_env module~inout_input->iso_fortran_env module~inout_input->module~module_core module~inout_input->stdlib_logger json_module json_module module~inout_input->json_module module~inout_project_settings inout_project_settings module~inout_input->module~inout_project_settings stdlib_strings stdlib_strings module~inout_input->stdlib_strings module~core_fortran_utils_memory_stats_wrapper->iso_fortran_env module~core_c_utils core_c_utils module~core_fortran_utils_memory_stats_wrapper->module~core_c_utils module~core_fortran_utils_signal_flag_wrapper->iso_fortran_env module~core_fortran_utils_signal_flag_wrapper->stdlib_logger module~core_fortran_utils_signal_flag_wrapper->iso_c_binding module~core_c_utils_signal_flag core_c_utils_signal_flag module~core_fortran_utils_signal_flag_wrapper->module~core_c_utils_signal_flag module~core_fortran_utils_system_info_wrapper->iso_fortran_env module~core_fortran_utils_system_info_wrapper->iso_c_binding module~core_fortran_utils_system_info_wrapper->stdlib_strings module~core_fortran_utils_system_info_wrapper->module~core_c_utils module~core_types_array->iso_fortran_env module~core_types_array->module~core_allocate module~core_types_array->module~core_deallocate module~core_types_gauss->iso_fortran_env module~core_types_pointer->iso_fortran_env module~core_types_variable->iso_fortran_env module~core_types_variable->module~core_allocate module~core_types_vector->iso_fortran_env module~core_vtk_vtk_wrapper->iso_c_binding module~core_vtk_vtu_wrapper->iso_c_binding module~inout_project_settings->iso_fortran_env module~inout_project_settings->module~module_core module~core_c_utils->iso_c_binding module~core_c_utils->module~core_c_utils_signal_flag module~core_c_utils_memory_stats core_c_utils_memory_stats module~core_c_utils->module~core_c_utils_memory_stats module~core_c_utils_system_info core_c_utils_system_info module~core_c_utils->module~core_c_utils_system_info module~core_c_utils_signal_flag->iso_c_binding module~core_c_utils_memory_stats->iso_c_binding module~core_c_utils_system_info->iso_c_binding

Used by

  • module~~domain_element~~UsedByGraph module~domain_element domain_element module~domain_adjacency_adjacency_element domain_adjacency_adjacency_element module~domain_adjacency_adjacency_element->module~domain_element module~domain_element_factory domain_element_factory module~domain_element_factory->module~domain_element module~domain_element_square_first domain_element_square_first module~domain_element_square_first->module~domain_element module~domain_element_square_second domain_element_square_second module~domain_element_square_second->module~domain_element module~domain_element_triangle_first domain_element_triangle_first module~domain_element_triangle_first->module~domain_element module~domain_element_triangle_second domain_element_triangle_second module~domain_element_triangle_second->module~domain_element module~domain_manager domain_manager module~domain_manager->module~domain_element module~domain_manager->module~domain_element_factory module~domain_reordering domain_reordering module~domain_manager->module~domain_reordering module~domain_adjacency domain_adjacency module~domain_manager->module~domain_adjacency module~domain_multicoloring domain_multicoloring module~domain_manager->module~domain_multicoloring module~domain_reordering->module~domain_element module~module_domain module_domain module~module_domain->module~domain_element module~module_domain->module~domain_element_factory module~module_domain->module~domain_manager module~module_domain->module~domain_reordering module~module_domain->module~domain_adjacency module~module_domain->module~domain_multicoloring module~conditions_boundary conditions_boundary module~conditions_boundary->module~module_domain module~module_matrix module_matrix module~conditions_boundary->module~module_matrix module~conditions_boundary_manager conditions_boundary_manager module~conditions_boundary_manager->module~module_domain module~conditions_boundary_manager->module~conditions_boundary module~conditions_boundary_manager->module~module_matrix module~conditions_initial conditions_initial module~conditions_initial->module~module_domain module~module_boundary module_boundary module~conditions_initial->module~module_boundary module~conditions_initial_manager conditions_initial_manager module~conditions_initial_manager->module~module_domain module~conditions_initial_manager->module~conditions_initial module~domain_adjacency->module~domain_adjacency_adjacency_element module~domain_multicoloring->module~domain_adjacency_adjacency_element module~input_output input_output module~input_output->module~module_domain module~input_output->module~module_matrix module~main_ftdss Main_FTDSS module~main_ftdss->module~module_domain module~main_thermal main_thermal module~main_ftdss->module~main_thermal module~main_ftdss->module~module_boundary module~module_initial module_initial module~main_ftdss->module~module_initial module~module_output module_output module~main_ftdss->module~module_output module~main_thermal->module~module_domain module~main_thermal->module~module_boundary module~main_thermal->module~module_matrix module~module_solver module_solver module~main_thermal->module~module_solver module~matrix_base matrix_base module~matrix_base->module~module_domain module~matrix_coo matrix_coo module~matrix_coo->module~module_domain module~matrix_coo->module~matrix_base module~matrix_crs matrix_crs module~matrix_crs->module~module_domain module~matrix_crs->module~matrix_base module~matrix_crs->module~matrix_coo module~matrix_dense matrix_dense module~matrix_dense->module~module_domain module~matrix_dense->module~matrix_base module~reordering_methods reordering_methods module~reordering_methods->module~domain_reordering module~reordering_to_original reordering_to_original module~reordering_to_original->module~domain_reordering module~reordering_to_reordered reordering_to_reordered module~reordering_to_reordered->module~domain_reordering module~conditions_boundary_adiabatic conditions_boundary_adiabatic module~conditions_boundary_adiabatic->module~conditions_boundary module~conditions_boundary_base conditions_boundary_base module~conditions_boundary_base->module~conditions_boundary module~conditions_boundary_dirichlet conditions_boundary_dirichlet module~conditions_boundary_dirichlet->module~conditions_boundary module~conditions_initial_laplace conditions_initial_laplace module~conditions_initial_laplace->module~conditions_initial module~conditions_initial_uniform conditions_initial_uniform module~conditions_initial_uniform->module~conditions_initial module~input_output_base input_output_base module~input_output_base->module~input_output module~input_output_obaservation input_output_obaservation module~input_output_obaservation->module~input_output module~input_output_overall_base input_output_overall_base module~input_output_overall_base->module~input_output module~input_output_overall_vtk input_output_overall_vtk module~input_output_overall_vtk->module~input_output module~input_output_overall_vtu input_output_overall_vtu module~input_output_overall_vtu->module~input_output module~input_output_system_logger input_output_system_logger module~input_output_system_logger->module~input_output module~main_thermal_3phase Main_Thermal_3Phase module~main_thermal_3phase->module~main_thermal module~module_boundary->module~conditions_boundary module~module_boundary->module~conditions_boundary_manager module~module_initial->module~conditions_initial module~module_initial->module~conditions_initial_manager module~module_matrix->module~matrix_base module~module_matrix->module~matrix_coo module~module_matrix->module~matrix_crs module~module_matrix->module~matrix_dense module~module_output->module~input_output module~module_thermal module_thermal module~module_thermal->module~main_thermal module~multicoloring_dsatur multicoloring_dsatur module~multicoloring_dsatur->module~domain_multicoloring module~multicoloring_lfo multicoloring_lfo module~multicoloring_lfo->module~domain_multicoloring module~multicoloring_welch_powell multicoloring_welch_powell module~multicoloring_welch_powell->module~domain_multicoloring module~solver_solver_factory solver_solver_factory module~solver_solver_factory->module~module_matrix module~module_solver->module~solver_solver_factory

Interfaces

interface

  • private module function construct_square_first(id, global_coordinate, cell_info, integration) result(element)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: id
    type(type_dp_3d), intent(in), pointer :: global_coordinate
    type(type_vtk_cell), intent(in) :: cell_info
    type(type_geometry_settings), intent(in) :: integration

    Return Value class(abst_element), allocatable

interface

  • private module function construct_square_second(id, global_coordinate, cell_info, integration) result(element)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: id
    type(type_dp_3d), intent(in), pointer :: global_coordinate
    type(type_vtk_cell), intent(in) :: cell_info
    type(type_geometry_settings), intent(in) :: integration

    Return Value class(abst_element), allocatable

interface

  • private module function construct_triangle_first(id, global_coordinate, cell_info, integration) result(element)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: id
    type(type_dp_3d), intent(in), pointer :: global_coordinate
    type(type_vtk_cell), intent(in) :: cell_info
    type(type_geometry_settings), intent(in) :: integration

    Return Value class(abst_element), allocatable

interface

  • private module function construct_triangle_second(id, global_coordinate, cell_info, integration) result(element)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: id
    type(type_dp_3d), intent(in), pointer :: global_coordinate
    type(type_vtk_cell), intent(in) :: cell_info
    type(type_geometry_settings), intent(in) :: integration

    Return Value class(abst_element), allocatable

interface

  • private module function dpsi_deta_square_first(self, i, xi, eta) result(dpsi)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function dpsi_deta_square_second(self, i, xi, eta) result(dpsi)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_second), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function dpsi_deta_triangle_first(self, i, xi, eta) result(dpsi)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_first), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function dpsi_deta_triangle_second(self, i, xi, eta) result(dpsi)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_second), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function dpsi_dxi_square_first(self, i, xi, eta) result(dpsi)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function dpsi_dxi_square_second(self, i, xi, eta) result(dpsi)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_second), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function dpsi_dxi_triangle_first(self, i, xi, eta) result(dpsi)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_first), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function dpsi_dxi_triangle_second(self, i, xi, eta) result(dpsi)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_second), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function get_dimension_square_first(self) result(dimension)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_dimension_square_second(self) result(dimension)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_dimension_triangle_first(self) result(dimension)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_dimension_triangle_second(self) result(dimension)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_group_square_first(self) result(group)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_group_square_second(self) result(group)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_group_triangle_first(self) result(group)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_group_triangle_second(self) result(group)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_id_square_first(self) result(id)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_id_square_second(self) result(id)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_id_triangle_first(self) result(id)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_id_triangle_second(self) result(id)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_num_gauss_square_first(self) result(num_gauss)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_num_gauss_square_second(self) result(num_gauss)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_num_gauss_triangle_first(self) result(num_gauss)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_num_gauss_triangle_second(self) result(num_gauss)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_num_nodes_square_first(self) result(num_nodes)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_num_nodes_square_second(self) result(num_nodes)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_num_nodes_triangle_first(self) result(num_nodes)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_num_nodes_triangle_second(self) result(num_nodes)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_order_square_first(self) result(order)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_order_square_second(self) result(order)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_order_triangle_first(self) result(order)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_order_triangle_second(self) result(order)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_type_square_first(self) result(type)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_type_square_second(self) result(type)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_type_triangle_first(self) result(type)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_first), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • private module function get_type_triangle_second(self) result(type)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_second), intent(in) :: self

    Return Value integer(kind=int32)

interface

  • public module function interpolate_reordered_square_first(self, xi, eta, value) result(interpolated_value)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta
    real(kind=real64), intent(in) :: value(:)

    Return Value real(kind=real64)

interface

  • public module function interpolate_reordered_square_second(self, xi, eta, value) result(interpolated_value)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta
    real(kind=real64), intent(in) :: value(:)

    Return Value real(kind=real64)

interface

  • public module function interpolate_reordered_triangle_first(self, xi, eta, value) result(interpolated_value)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta
    real(kind=real64), intent(in) :: value(:)

    Return Value real(kind=real64)

interface

  • public module function interpolate_reordered_triangle_second(self, xi, eta, value) result(interpolated_value)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta
    real(kind=real64), intent(in) :: value(:)

    Return Value real(kind=real64)

interface

  • private module function interpolate_square_first(self, xi, eta, value) result(interpolated_value)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta
    real(kind=real64), intent(in) :: value(:)

    Return Value real(kind=real64)

interface

  • private module function interpolate_square_second(self, xi, eta, value) result(interpolated_value)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta
    real(kind=real64), intent(in) :: value(:)

    Return Value real(kind=real64)

interface

  • private module function interpolate_triangle_first(self, xi, eta, value) result(interpolated_value)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta
    real(kind=real64), intent(in) :: value(:)

    Return Value real(kind=real64)

interface

  • private module function interpolate_triangle_second(self, xi, eta, value) result(interpolated_value)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta
    real(kind=real64), intent(in) :: value(:)

    Return Value real(kind=real64)

interface

  • private module subroutine is_in_square_first(self, px, py, pxi, peta, is_in)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), intent(in) :: self
    real(kind=real64), intent(in) :: px
    real(kind=real64), intent(in) :: py
    real(kind=real64), intent(inout) :: pxi
    real(kind=real64), intent(inout) :: peta
    logical, intent(inout) :: is_in

interface

  • private module subroutine is_in_square_second(self, px, py, pxi, peta, is_in)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_second), intent(in) :: self
    real(kind=real64), intent(in) :: px
    real(kind=real64), intent(in) :: py
    real(kind=real64), intent(inout) :: pxi
    real(kind=real64), intent(inout) :: peta
    logical, intent(inout) :: is_in

interface

  • private module subroutine is_in_triangle_first(self, px, py, pxi, peta, is_in)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_first), intent(in) :: self
    real(kind=real64), intent(in) :: px
    real(kind=real64), intent(in) :: py
    real(kind=real64), intent(inout) :: pxi
    real(kind=real64), intent(inout) :: peta
    logical, intent(inout) :: is_in

interface

  • private module subroutine is_in_triangle_second(self, px, py, pxi, peta, is_in)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_second), intent(in) :: self
    real(kind=real64), intent(in) :: px
    real(kind=real64), intent(in) :: py
    real(kind=real64), intent(inout) :: pxi
    real(kind=real64), intent(inout) :: peta
    logical, intent(inout) :: is_in

interface

  • private module function jacobian_det_square_first(self, xi, eta) result(J_Det)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function jacobian_det_square_second(self, xi, eta) result(J_Det)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_second), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function jacobian_det_triangle_first(self, xi, eta) result(J_Det)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_first), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function jacobian_det_triangle_second(self, xi, eta) result(J_Det)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_second), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function jacobian_square_first(self, i, j, xi, eta) result(Jval)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    integer(kind=int32), intent(in) :: j
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function jacobian_square_second(self, i, j, xi, eta) result(Jval)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_second), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    integer(kind=int32), intent(in) :: j
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function jacobian_triangle_first(self, i, j, xi, eta) result(Jval)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_first), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    integer(kind=int32), intent(in) :: j
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function jacobian_triangle_second(self, i, j, xi, eta) result(Jval)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_second), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    integer(kind=int32), intent(in) :: j
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function psi_square_first(self, i, xi, eta) result(psi)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function psi_square_second(self, i, xi, eta) result(psi)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_second), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function psi_triangle_first(self, i, xi, eta) result(N)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_first), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

interface

  • private module function psi_triangle_second(self, i, xi, eta) result(N)

    Arguments

    Type IntentOptional Attributes Name
    class(type_triangle_second), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

public interface type_square_first

public interface type_square_second

public interface type_triangle_first

public interface type_triangle_second


Abstract Interfaces

abstract interface

  • private function abst_dpsi_deta(self, i, xi, eta) result(dpsi)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

abstract interface

  • private function abst_dpsi_dxi(self, i, xi, eta) result(dpsi)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

abstract interface

  • private function abst_get_connectivity(self, index) result(connectivity)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    integer(kind=int32), intent(in) :: index

    Return Value integer(kind=int32)

abstract interface

  • private function abst_get_dimension(self) result(dimension)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self

    Return Value integer(kind=int32)

abstract interface

  • private function abst_get_group(self) result(group)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self

    Return Value integer(kind=int32)

abstract interface

  • private function abst_get_id(self) result(id)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self

    Return Value integer(kind=int32)

abstract interface

  • private function abst_get_num_gauss(self) result(num_gauss)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self

    Return Value integer(kind=int32)

abstract interface

  • private function abst_get_num_nodes(self) result(num_nodes)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self

    Return Value integer(kind=int32)

abstract interface

  • private function abst_get_order(self) result(order)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self

    Return Value integer(kind=int32)

abstract interface

  • private function abst_get_type(self) result(type)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self

    Return Value integer(kind=int32)

abstract interface

  • private function abst_interpolate(self, xi, eta, value) result(interpolated_value)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta
    real(kind=real64), intent(in) :: value(:)

    Return Value real(kind=real64)

abstract interface

  • private subroutine abst_is_inside(self, px, py, pxi, peta, is_in)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    real(kind=real64), intent(in) :: px
    real(kind=real64), intent(in) :: py
    real(kind=real64), intent(inout) :: pxi
    real(kind=real64), intent(inout) :: peta
    logical, intent(inout) :: is_in

abstract interface

  • private function abst_jacobian(self, i, j, xi, eta) result(Jval)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    integer(kind=int32), intent(in) :: j
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

abstract interface

  • private function abst_jacobian_det(self, xi, eta) result(J_Det)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)

abstract interface

  • private function abst_psi(self, i, xi, eta) result(psi)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    real(kind=real64), intent(in) :: xi
    real(kind=real64), intent(in) :: eta

    Return Value real(kind=real64)


Derived Types

type, public, abstract ::  abst_element

Components

Type Visibility Attributes Name Initial
integer(kind=int32), public, allocatable :: connectivity(:)

connectivity information

integer(kind=int32), public, allocatable :: connectivity_reordered(:)

reordered connectivity information

integer(kind=int32), private :: dimension
real(kind=real64), public, allocatable :: gauss(:,:)

Gauss Quadrature points Coordinate

procedure(abst_get_connectivity), public, pass(self), pointer :: get_connectivity => null()
integer(kind=int32), private :: group

Element group number

integer(kind=int32), private :: id

Element ID

procedure(abst_interpolate), public, pass(self), pointer :: interpolate => null()
integer(kind=int32), public :: num_gauss

Number of Gauss Quadrature points

integer(kind=int32), private :: num_nodes

Number of nodes in the element

integer(kind=int32), private :: order
integer(kind=int32), private :: type

Element type (5: triangle 1st, 9: square 1st)

real(kind=real64), public, allocatable :: weight(:)

Gauss weight

type(type_dp_pointer), public, allocatable :: x(:)

X coordinate

type(type_dp_pointer), public, allocatable :: y(:)

Y coordinate

type(type_dp_pointer), public, allocatable :: z(:)

Z coordinate

Type-Bound Procedures

procedure(abst_dpsi_deta), public, deferred, pass(self) :: dpsi_deta
procedure(abst_dpsi_dxi), public, deferred, pass(self) :: dpsi_dxi
procedure(abst_get_dimension), public, deferred, pass(self) :: get_dimension
procedure(abst_get_group), public, deferred, pass(self) :: get_group
procedure(abst_get_id), public, deferred, pass(self) :: get_id
procedure(abst_get_num_gauss), public, deferred, pass(self) :: get_num_gauss
procedure(abst_get_num_nodes), public, deferred, pass(self) :: get_num_nodes
procedure(abst_get_order), public, deferred, pass(self) :: get_order
procedure(abst_get_type), public, deferred, pass(self) :: get_type
procedure(abst_is_inside), public, deferred, pass(self) :: is_inside
procedure(abst_jacobian), public, deferred, pass(self) :: jacobian
procedure(abst_jacobian_det), public, deferred, pass(self) :: jacobian_det
procedure(abst_psi), public, deferred, pass(self) :: psi

type, public ::  holder_elements

Components

Type Visibility Attributes Name Initial
class(abst_element), public, allocatable :: e

type, public, extends(abst_element) ::  type_square_first

Components

Type Visibility Attributes Name Initial
integer(kind=int32), public, allocatable :: connectivity(:)

connectivity information

integer(kind=int32), public, allocatable :: connectivity_reordered(:)

reordered connectivity information

real(kind=real64), public, allocatable :: gauss(:,:)

Gauss Quadrature points Coordinate

procedure(abst_get_connectivity), public, pass(self), pointer :: get_connectivity => null()
procedure(abst_interpolate), public, pass(self), pointer :: interpolate => null()
integer(kind=int32), public :: num_gauss

Number of Gauss Quadrature points

real(kind=real64), public, allocatable :: weight(:)

Gauss weight

type(type_dp_pointer), public, allocatable :: x(:)

X coordinate

type(type_dp_pointer), public, allocatable :: y(:)

Y coordinate

type(type_dp_pointer), public, allocatable :: z(:)

Z coordinate

Constructor

private interface construct_square_first ()

Type-Bound Procedures

procedure, public, pass(self) :: dpsi_deta => dpsi_deta_square_first
procedure, public, pass(self) :: dpsi_dxi => dpsi_dxi_square_first
procedure, public, pass(self) :: get_dimension => get_dimension_square_first
procedure, public, pass(self) :: get_group => get_group_square_first
procedure, public, pass(self) :: get_id => get_id_square_first
procedure, public, pass(self) :: get_num_gauss => get_num_gauss_square_first
procedure, public, pass(self) :: get_num_nodes => get_num_nodes_square_first
procedure, public, pass(self) :: get_order => get_order_square_first
procedure, public, pass(self) :: get_type => get_type_square_first
procedure, public, pass(self) :: is_inside => is_in_square_first
procedure, public, pass(self) :: jacobian => jacobian_square_first
procedure, public, pass(self) :: jacobian_det => jacobian_det_square_first
procedure, public, pass(self) :: psi => psi_square_first

type, public, extends(abst_element) ::  type_square_second

Components

Type Visibility Attributes Name Initial
integer(kind=int32), public, allocatable :: connectivity(:)

connectivity information

integer(kind=int32), public, allocatable :: connectivity_reordered(:)

reordered connectivity information

real(kind=real64), public, allocatable :: gauss(:,:)

Gauss Quadrature points Coordinate

procedure(abst_get_connectivity), public, pass(self), pointer :: get_connectivity => null()
procedure(abst_interpolate), public, pass(self), pointer :: interpolate => null()
integer(kind=int32), public :: num_gauss

Number of Gauss Quadrature points

real(kind=real64), public, allocatable :: weight(:)

Gauss weight

type(type_dp_pointer), public, allocatable :: x(:)

X coordinate

type(type_dp_pointer), public, allocatable :: y(:)

Y coordinate

type(type_dp_pointer), public, allocatable :: z(:)

Z coordinate

Constructor

private interface construct_square_second ()

Type-Bound Procedures

procedure, public, pass(self) :: dpsi_deta => dpsi_deta_square_second
procedure, public, pass(self) :: dpsi_dxi => dpsi_dxi_square_second
procedure, public, pass(self) :: get_dimension => get_dimension_square_second
procedure, public, pass(self) :: get_group => get_group_square_second
procedure, public, pass(self) :: get_id => get_id_square_second
procedure, public, pass(self) :: get_num_gauss => get_num_gauss_square_second
procedure, public, pass(self) :: get_num_nodes => get_num_nodes_square_second
procedure, public, pass(self) :: get_order => get_order_square_second
procedure, public, pass(self) :: get_type => get_type_square_second
procedure, public, pass(self) :: is_inside => is_in_square_second
procedure, public, pass(self) :: jacobian => jacobian_square_second
procedure, public, pass(self) :: jacobian_det => jacobian_det_square_second
procedure, public, pass(self) :: psi => psi_square_second

type, public, extends(abst_element) ::  type_triangle_first

Components

Type Visibility Attributes Name Initial
integer(kind=int32), public, allocatable :: connectivity(:)

connectivity information

integer(kind=int32), public, allocatable :: connectivity_reordered(:)

reordered connectivity information

real(kind=real64), public, allocatable :: gauss(:,:)

Gauss Quadrature points Coordinate

procedure(abst_get_connectivity), public, pass(self), pointer :: get_connectivity => null()
procedure(abst_interpolate), public, pass(self), pointer :: interpolate => null()
integer(kind=int32), public :: num_gauss

Number of Gauss Quadrature points

real(kind=real64), public, allocatable :: weight(:)

Gauss weight

type(type_dp_pointer), public, allocatable :: x(:)

X coordinate

type(type_dp_pointer), public, allocatable :: y(:)

Y coordinate

type(type_dp_pointer), public, allocatable :: z(:)

Z coordinate

Constructor

private interface construct_triangle_first ()

Type-Bound Procedures

procedure, public, pass(self) :: dpsi_deta => dpsi_deta_triangle_first
procedure, public, pass(self) :: dpsi_dxi => dpsi_dxi_triangle_first
procedure, public, pass(self) :: get_dimension => get_dimension_triangle_first
procedure, public, pass(self) :: get_group => get_group_triangle_first
procedure, public, pass(self) :: get_id => get_id_triangle_first
procedure, public, pass(self) :: get_num_gauss => get_num_gauss_triangle_first
procedure, public, pass(self) :: get_num_nodes => get_num_nodes_triangle_first
procedure, public, pass(self) :: get_order => get_order_triangle_first
procedure, public, pass(self) :: get_type => get_type_triangle_first
procedure, public, pass(self) :: is_inside => is_in_triangle_first
procedure, public, pass(self) :: jacobian => jacobian_triangle_first
procedure, public, pass(self) :: jacobian_det => jacobian_det_triangle_first
procedure, public, pass(self) :: psi => psi_triangle_first

type, public, extends(abst_element) ::  type_triangle_second

Components

Type Visibility Attributes Name Initial
integer(kind=int32), public, allocatable :: connectivity(:)

connectivity information

integer(kind=int32), public, allocatable :: connectivity_reordered(:)

reordered connectivity information

real(kind=real64), public, allocatable :: gauss(:,:)

Gauss Quadrature points Coordinate

procedure(abst_get_connectivity), public, pass(self), pointer :: get_connectivity => null()
procedure(abst_interpolate), public, pass(self), pointer :: interpolate => null()
integer(kind=int32), public :: num_gauss

Number of Gauss Quadrature points

real(kind=real64), public, allocatable :: weight(:)

Gauss weight

type(type_dp_pointer), public, allocatable :: x(:)

X coordinate

type(type_dp_pointer), public, allocatable :: y(:)

Y coordinate

type(type_dp_pointer), public, allocatable :: z(:)

Z coordinate

Constructor

private interface construct_triangle_second ()

Type-Bound Procedures

procedure, public, pass(self) :: dpsi_deta => dpsi_deta_triangle_second
procedure, public, pass(self) :: dpsi_dxi => dpsi_dxi_triangle_second
procedure, public, pass(self) :: get_dimension => get_dimension_triangle_second
procedure, public, pass(self) :: get_group => get_group_triangle_second
procedure, public, pass(self) :: get_id => get_id_triangle_second
procedure, public, pass(self) :: get_num_gauss => get_num_gauss_triangle_second
procedure, public, pass(self) :: get_num_nodes => get_num_nodes_triangle_second
procedure, public, pass(self) :: get_order => get_order_triangle_second
procedure, public, pass(self) :: get_type => get_type_triangle_second
procedure, public, pass(self) :: is_inside => is_in_triangle_second
procedure, public, pass(self) :: jacobian => jacobian_triangle_second
procedure, public, pass(self) :: jacobian_det => jacobian_det_triangle_second
procedure, public, pass(self) :: psi => psi_triangle_second

Functions

public function get_connectivity(self, index) result(connectivity)

Arguments

Type IntentOptional Attributes Name
class(abst_element), intent(in) :: self
integer(kind=int32), intent(in) :: index

Return Value integer(kind=int32)

public function get_connectivity_reordered(self, index) result(connectivity)

Arguments

Type IntentOptional Attributes Name
class(abst_element), intent(in) :: self
integer(kind=int32), intent(in) :: index

Return Value integer(kind=int32)

public function interpolate(self, xi, eta, value) result(interpolated_value)

Arguments

Type IntentOptional Attributes Name
class(abst_element), intent(in) :: self
real(kind=real64), intent(in) :: xi
real(kind=real64), intent(in) :: eta
real(kind=real64), intent(in) :: value(:)

Return Value real(kind=real64)

public function interpolate_reordered(self, xi, eta, value) result(interpolated_value)

Arguments

Type IntentOptional Attributes Name
class(abst_element), intent(in) :: self
real(kind=real64), intent(in) :: xi
real(kind=real64), intent(in) :: eta
real(kind=real64), intent(in) :: value(:)

Return Value real(kind=real64)