domain_adjacency_adjacency_node Module


Uses

  • module~~domain_adjacency_adjacency_node~~UsesGraph module~domain_adjacency_adjacency_node domain_adjacency_adjacency_node iso_fortran_env iso_fortran_env module~domain_adjacency_adjacency_node->iso_fortran_env module~module_core module_core module~domain_adjacency_adjacency_node->module~module_core stdlib_sorting stdlib_sorting module~domain_adjacency_adjacency_node->stdlib_sorting 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~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 stdlib_logger stdlib_logger 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->stdlib_sorting module~core_unique->module~core_allocate module~core_vtk->iso_fortran_env module~core_vtk->stdlib_sorting 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_vtk_constants->iso_fortran_env 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->iso_c_binding module~core_fortran_utils_signal_flag_wrapper->stdlib_logger 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->module~core_c_utils stdlib_strings stdlib_strings module~core_fortran_utils_system_info_wrapper->stdlib_strings 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~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_adjacency_adjacency_node~~UsedByGraph module~domain_adjacency_adjacency_node domain_adjacency_adjacency_node module~domain_adjacency domain_adjacency module~domain_adjacency->module~domain_adjacency_adjacency_node module~domain_reordering domain_reordering module~domain_reordering->module~domain_adjacency_adjacency_node module~domain_manager domain_manager module~domain_manager->module~domain_adjacency module~domain_manager->module~domain_reordering module~module_domain module_domain module~module_domain->module~domain_adjacency module~module_domain->module~domain_reordering module~module_domain->module~domain_manager 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 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~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~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~solver_solver_factory solver_solver_factory module~solver_solver_factory->module~module_matrix module~module_solver->module~solver_solver_factory

Derived Types

type, public ::  type_node_adjacency

Components

Type Visibility Attributes Name Initial
integer(kind=int32), public, allocatable :: ind(:)
integer(kind=int32), public :: num_nodes = 0
integer(kind=int32), public, allocatable :: ptr(:)

Type-Bound Procedures

procedure, public, pass(self) :: destroy => destroy_node_adjacency
procedure, public, pass(self) :: get_degree => get_node_degree
procedure, public, pass(self) :: get_neighbors => get_node_neighbors
procedure, public, pass(self) :: get_num_nodes
procedure, public, pass(self) :: initialize => initialize_node_adjacency
procedure, public, pass(self) :: is_adjacent => check_node_adjacent

Functions

private function check_node_adjacent(self, i, j) result(is_adj)

Arguments

Type IntentOptional Attributes Name
class(type_node_adjacency), intent(in) :: self
integer(kind=int32), intent(in) :: i
integer(kind=int32), intent(in) :: j

Return Value logical

private function get_node_degree(self, i) result(deg)

Arguments

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

Return Value integer(kind=int32)

private function get_num_nodes(self) result(n)

Arguments

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

Return Value integer(kind=int32)


Subroutines

private subroutine build_csr_from_edges(self, edge_i_in, edge_j_in, edge_count_in)

Arguments

Type IntentOptional Attributes Name
class(type_node_adjacency), intent(inout) :: self
integer(kind=int32), intent(in) :: edge_i_in(:)
integer(kind=int32), intent(in) :: edge_j_in(:)
integer(kind=int32), intent(in) :: edge_count_in

private subroutine destroy_node_adjacency(self)

Arguments

Type IntentOptional Attributes Name
class(type_node_adjacency), intent(inout) :: self

private subroutine generate_all_edges(num_elems, elem_ptr, elem_data, edge_i, edge_j, edge_count, istat)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: num_elems
integer(kind=int32), intent(in) :: elem_ptr(:)
integer(kind=int32), intent(in) :: elem_data(:)
integer(kind=int32), intent(out), allocatable :: edge_i(:)
integer(kind=int32), intent(out), allocatable :: edge_j(:)
integer(kind=int32), intent(out) :: edge_count
integer(kind=int32), intent(out) :: istat

private subroutine get_node_neighbors(self, node_id, neighbors)

Arguments

Type IntentOptional Attributes Name
class(type_node_adjacency), intent(in) :: self
integer(kind=int32), intent(in) :: node_id
integer(kind=int32), intent(out), allocatable :: neighbors(:)

private subroutine initialize_node_adjacency(self, num_nodes_in, num_elems, elements_conn_data, elements_ptr)

Arguments

Type IntentOptional Attributes Name
class(type_node_adjacency), intent(inout) :: self
integer(kind=int32), intent(in) :: num_nodes_in
integer(kind=int32), intent(in) :: num_elems
integer(kind=int32), intent(in) :: elements_conn_data(:)
integer(kind=int32), intent(in) :: elements_ptr(:)