bem_panel_geometry Module

Ordered triangle geometry and exact Cartesian surface moments.


Uses

  • module~~bem_panel_geometry~~UsesGraph module~bem_panel_geometry bem_panel_geometry ieee_arithmetic ieee_arithmetic module~bem_panel_geometry->ieee_arithmetic module~bem_kinds bem_kinds module~bem_panel_geometry->module~bem_kinds iso_fortran_env iso_fortran_env module~bem_kinds->iso_fortran_env

Used by

  • module~~bem_panel_geometry~~UsedByGraph module~bem_panel_geometry bem_panel_geometry module~bem_coulomb_fmm_eval_ops bem_coulomb_fmm_eval_ops module~bem_coulomb_fmm_eval_ops->module~bem_panel_geometry module~bem_coulomb_fmm_types bem_coulomb_fmm_types module~bem_coulomb_fmm_eval_ops->module~bem_coulomb_fmm_types module~bem_panel_kernel bem_panel_kernel module~bem_coulomb_fmm_eval_ops->module~bem_panel_kernel module~bem_coulomb_fmm_basis bem_coulomb_fmm_basis module~bem_coulomb_fmm_eval_ops->module~bem_coulomb_fmm_basis module~bem_coulomb_fmm_periodic bem_coulomb_fmm_periodic module~bem_coulomb_fmm_eval_ops->module~bem_coulomb_fmm_periodic module~bem_coulomb_fmm_tree_utils bem_coulomb_fmm_tree_utils module~bem_coulomb_fmm_eval_ops->module~bem_coulomb_fmm_tree_utils module~bem_coulomb_fmm_periodic_nonzero_reference bem_coulomb_fmm_periodic_nonzero_reference module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_panel_geometry module~bem_triangle_quadrature bem_triangle_quadrature module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_triangle_quadrature module~bem_coulomb_fmm_plan_ops bem_coulomb_fmm_plan_ops module~bem_coulomb_fmm_plan_ops->module~bem_panel_geometry module~bem_coulomb_fmm_plan_ops->module~bem_coulomb_fmm_types module~bem_coulomb_fmm_plan_ops->module~bem_coulomb_fmm_basis module~bem_coulomb_fmm_plan_ops->module~bem_coulomb_fmm_periodic module~bem_coulomb_fmm_periodic_ewald bem_coulomb_fmm_periodic_ewald module~bem_coulomb_fmm_plan_ops->module~bem_coulomb_fmm_periodic_ewald module~bem_coulomb_fmm_periodic_root_ops bem_coulomb_fmm_periodic_root_ops module~bem_coulomb_fmm_plan_ops->module~bem_coulomb_fmm_periodic_root_ops module~bem_coulomb_fmm_plan_ops->module~bem_coulomb_fmm_tree_utils module~bem_coulomb_fmm_types->module~bem_panel_geometry module~bem_electrostatic_snapshot bem_electrostatic_snapshot module~bem_electrostatic_snapshot->module~bem_panel_geometry module~bem_electrostatic_snapshot->module~bem_coulomb_fmm_periodic_nonzero_reference module~bem_electrostatic_snapshot->module~bem_panel_kernel module~bem_field_solver bem_field_solver module~bem_electrostatic_snapshot->module~bem_field_solver module~bem_field_kernel_c bem_field_kernel_c module~bem_field_kernel_c->module~bem_panel_geometry module~bem_coulomb_fmm_core bem_coulomb_fmm_core module~bem_field_kernel_c->module~bem_coulomb_fmm_core module~bem_field_solver_eval bem_field_solver_eval module~bem_field_solver_eval->module~bem_panel_geometry module~bem_field_solver_eval->module~bem_panel_kernel module~bem_field_solver_eval->module~bem_coulomb_fmm_core module~bem_field_solver_eval->module~bem_field_solver module~bem_mesh bem_mesh module~bem_mesh->module~bem_panel_geometry module~bem_mesh->module~bem_triangle_quadrature module~bem_panel_kernel->module~bem_panel_geometry module~bem_panel_self_terms bem_panel_self_terms module~bem_panel_kernel->module~bem_panel_self_terms module~bem_panel_quadrature bem_panel_quadrature module~bem_panel_quadrature->module~bem_panel_geometry module~bem_panel_quadrature->module~bem_triangle_quadrature module~bem_panel_self_terms->module~bem_panel_geometry module~bem_surface_models_conductor bem_surface_models_conductor module~bem_surface_models_conductor->module~bem_panel_geometry module~bem_surface_models_conductor->module~bem_panel_kernel module~bem_triangle_quadrature->module~bem_panel_geometry module~bem_app_config_mesh_runtime bem_app_config_mesh_runtime module~bem_app_config_mesh_runtime->module~bem_mesh module~bem_importers bem_importers module~bem_app_config_mesh_runtime->module~bem_importers module~bem_templates bem_templates module~bem_app_config_mesh_runtime->module~bem_templates module~bem_app_config_particle_runtime bem_app_config_particle_runtime module~bem_app_config_particle_runtime->module~bem_electrostatic_snapshot module~bem_app_config_potential_runtime bem_app_config_potential_runtime module~bem_app_config_particle_runtime->module~bem_app_config_potential_runtime module~bem_app_config_potential_runtime->module~bem_electrostatic_snapshot module~bem_coulomb_fmm_basis->module~bem_coulomb_fmm_types module~bem_coulomb_fmm_core->module~bem_coulomb_fmm_types module~bem_coulomb_fmm_core_build bem_coulomb_fmm_core_build module~bem_coulomb_fmm_core_build->module~bem_coulomb_fmm_plan_ops module~bem_coulomb_fmm_core_build->module~bem_coulomb_fmm_core module~bem_coulomb_fmm_core_eval bem_coulomb_fmm_core_eval module~bem_coulomb_fmm_core_eval->module~bem_coulomb_fmm_eval_ops module~bem_coulomb_fmm_core_eval->module~bem_coulomb_fmm_core module~bem_coulomb_fmm_periodic->module~bem_coulomb_fmm_types module~bem_coulomb_fmm_periodic_ewald->module~bem_coulomb_fmm_types module~bem_coulomb_fmm_periodic_ewald->module~bem_coulomb_fmm_periodic module~bem_coulomb_fmm_periodic_root_ops->module~bem_coulomb_fmm_types module~bem_coulomb_fmm_periodic_root_ops->module~bem_coulomb_fmm_basis module~bem_coulomb_fmm_periodic_root_ops->module~bem_coulomb_fmm_periodic module~bem_coulomb_fmm_periodic_root_ops->module~bem_coulomb_fmm_periodic_ewald module~bem_coulomb_fmm_periodic_root_ops->module~bem_coulomb_fmm_tree_utils module~bem_coulomb_fmm_state_ops bem_coulomb_fmm_state_ops module~bem_coulomb_fmm_state_ops->module~bem_coulomb_fmm_types module~bem_coulomb_fmm_state_ops->module~bem_coulomb_fmm_tree_utils module~bem_coulomb_fmm_tree_utils->module~bem_coulomb_fmm_types module~bem_coulomb_fmm_tree_utils->module~bem_coulomb_fmm_periodic module~bem_electrostatic_snapshot_eval bem_electrostatic_snapshot_eval module~bem_electrostatic_snapshot_eval->module~bem_electrostatic_snapshot module~bem_importers->module~bem_mesh module~bem_matching_plane_coupling bem_matching_plane_coupling module~bem_matching_plane_coupling->module~bem_electrostatic_snapshot module~bem_app_config bem_app_config module~bem_matching_plane_coupling->module~bem_app_config module~bem_output_writer bem_output_writer module~bem_output_writer->module~bem_electrostatic_snapshot module~bem_particle_stepper bem_particle_stepper module~bem_particle_stepper->module~bem_electrostatic_snapshot module~bem_simulator bem_simulator module~bem_simulator->module~bem_electrostatic_snapshot module~bem_simulator->module~bem_output_writer module~bem_simulator->module~bem_particle_stepper module~bem_app_config_runtime bem_app_config_runtime module~bem_simulator->module~bem_app_config_runtime module~bem_simulator->module~bem_app_config module~bem_templates->module~bem_mesh program~main main program~main->module~bem_electrostatic_snapshot program~main->module~bem_mesh program~main->module~bem_output_writer program~main->module~bem_simulator module~bem_periodic_checkpoint bem_periodic_checkpoint program~main->module~bem_periodic_checkpoint program~main->module~bem_app_config module~bem_app_config_particle_runtime_batch bem_app_config_particle_runtime_batch module~bem_app_config_particle_runtime_batch->module~bem_app_config_particle_runtime module~bem_app_config_particle_runtime_sampling bem_app_config_particle_runtime_sampling module~bem_app_config_particle_runtime_sampling->module~bem_app_config_particle_runtime module~bem_app_config_runtime->module~bem_app_config_mesh_runtime module~bem_app_config_runtime->module~bem_app_config_particle_runtime module~bem_app_config_runtime->module~bem_app_config_potential_runtime module~bem_coulomb_fmm_core_state bem_coulomb_fmm_core_state module~bem_coulomb_fmm_core_state->module~bem_coulomb_fmm_core module~bem_coulomb_fmm_core_state->module~bem_coulomb_fmm_state_ops module~bem_field_solver->module~bem_coulomb_fmm_core module~bem_field_solver_config bem_field_solver_config module~bem_field_solver_config->module~bem_coulomb_fmm_core module~bem_field_solver_config->module~bem_field_solver module~bem_field_solver_fmm bem_field_solver_fmm module~bem_field_solver_fmm->module~bem_coulomb_fmm_core module~bem_field_solver_fmm->module~bem_field_solver module~bem_output_writer_files bem_output_writer_files module~bem_output_writer_files->module~bem_output_writer module~bem_output_writer_history bem_output_writer_history module~bem_output_writer_history->module~bem_output_writer module~bem_output_writer_summary bem_output_writer_summary module~bem_output_writer_summary->module~bem_output_writer module~bem_output_writer_summary->module~bem_field_solver module~bem_periodic_checkpoint->module~bem_output_writer module~bem_simulator_charge bem_simulator_charge module~bem_simulator_charge->module~bem_simulator module~bem_simulator_io bem_simulator_io module~bem_simulator_io->module~bem_output_writer module~bem_simulator_io->module~bem_simulator module~bem_simulator_io->module~bem_app_config_runtime module~bem_simulator_loop bem_simulator_loop module~bem_simulator_loop->module~bem_matching_plane_coupling module~bem_simulator_loop->module~bem_simulator module~bem_simulator_loop->module~bem_app_config_runtime module~bem_simulator_loop->module~bem_periodic_checkpoint module~bem_simulator_particles bem_simulator_particles module~bem_simulator_particles->module~bem_simulator module~bem_simulator_stats bem_simulator_stats module~bem_simulator_stats->module~bem_simulator module~bem_app_config->module~bem_app_config_runtime module~bem_field_solver_tree bem_field_solver_tree module~bem_field_solver_tree->module~bem_field_solver program~zhao_atlas_main zhao_atlas_main program~zhao_atlas_main->module~bem_app_config program~zhao_response_main zhao_response_main program~zhao_response_main->module~bem_app_config

Variables

Type Visibility Attributes Name Initial
integer(kind=i32), public, parameter :: panel_geometry_ok = 0_i32
integer(kind=i32), public, parameter :: panel_geometry_nonfinite = 1_i32
integer(kind=i32), public, parameter :: panel_geometry_degenerate = 2_i32

Derived Types

type, public ::  panel_geometry_type

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: vertex(3,3) = 0.0_dp
real(kind=dp), public :: centroid(3) = 0.0_dp
real(kind=dp), public :: normal(3) = 0.0_dp
real(kind=dp), public :: area = 0.0_dp
real(kind=dp), public :: edge_length(3) = 0.0_dp
real(kind=dp), public :: edge_outward(3,3) = 0.0_dp
real(kind=dp), public :: moment0 = 0.0_dp
real(kind=dp), public :: moment1(3) = 0.0_dp
real(kind=dp), public :: moment2(3,3) = 0.0_dp

Functions

public pure function point_triangle_distance(geometry, point) result(distance)

Arguments

Type IntentOptional Attributes Name
type(panel_geometry_type), intent(in) :: geometry
real(kind=dp), intent(in) :: point(3)

Return Value real(kind=dp)


Subroutines

public subroutine init_panel_geometry(v0, v1, v2, geometry, status)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: v0(3)
real(kind=dp), intent(in) :: v1(3)
real(kind=dp), intent(in) :: v2(3)
type(panel_geometry_type), intent(out) :: geometry
integer(kind=i32), intent(out) :: status