tem_polygon_material_value Function

public function tem_polygon_material_value(me, nComponents, inVal, outVal, point) result(res)

Return the material value for point, based on the position in relation to the polygon.

The point containment is decided with the help of the Gauss-Bonnet theorem, which is highly robust, but requires the polygon vertices to follow an ordering along the polygon lines.

The returned value will be polygon%inval, if the point is inside and polygon%outside otherwise.

Arguments

TypeIntentOptionalAttributesName
type(tem_polygon_vertex_type), intent(in) :: me

Polygon to describe the material shape.

integer, intent(in) :: nComponents
real(kind=rk), intent(in) :: inVal(nComponents)
real(kind=rk), intent(in) :: outVal(nComponents)
real(kind=rk), intent(in) :: point(:)

Point to check against the polygon.

Return Value real(kind=rk)(nComponents)

Material value at point, as defined by the polygon.


Calls

proc~~tem_polygon_material_value~~CallsGraph proc~tem_polygon_material_value tem_polygon_material_value proc~angle_between angle_between proc~tem_polygon_material_value->proc~angle_between

Called by

proc~~tem_polygon_material_value~~CalledByGraph proc~tem_polygon_material_value tem_polygon_material_value proc~tem_eval_polygon_material_scal tem_eval_polygon_material_scal proc~tem_eval_polygon_material_scal->proc~tem_polygon_material_value proc~tem_eval_polygon_material_3d tem_eval_polygon_material_3d proc~tem_eval_polygon_material_3d->proc~tem_polygon_material_value proc~tem_eval_polygon_material_scal_3d tem_eval_polygon_material_scal_3d proc~tem_eval_polygon_material_scal_3d->proc~tem_polygon_material_value proc~tem_polygon_material_movement_single tem_polygon_material_movement_single proc~tem_polygon_material_movement_single->proc~tem_polygon_material_value proc~tem_polygon_material_test_value tem_polygon_material_test_value proc~tem_polygon_material_test_value->proc~tem_polygon_material_value proc~tem_eval_polygon_material tem_eval_polygon_material proc~tem_eval_polygon_material->proc~tem_polygon_material_value proc~tem_polygon_material_movement_multi tem_polygon_material_movement_multi proc~tem_polygon_material_movement_multi->proc~tem_polygon_material_value program~tem_polygon_material_test tem_polygon_material_test program~tem_polygon_material_test->proc~tem_polygon_material_test_value proc~tem_spatial_vector_for_coord tem_spatial_vector_for_coord proc~tem_spatial_vector_for_coord->proc~tem_eval_polygon_material_3d proc~tem_spatial_vector_for_coord->proc~tem_eval_polygon_material proc~tem_spacetime_for_coord tem_spacetime_for_coord proc~tem_spacetime_for_coord->proc~tem_polygon_material_movement_single proc~tem_spacetime_for_coord->proc~tem_polygon_material_movement_multi proc~tem_spatial_for_coord tem_spatial_for_coord proc~tem_spatial_for_coord->proc~tem_eval_polygon_material_scal proc~tem_spatial_for_coord->proc~tem_eval_polygon_material_scal_3d proc~tem_spacetime_scalar_for_index tem_spacetime_scalar_for_index proc~tem_spacetime_scalar_for_index->proc~tem_spacetime_for_coord proc~tem_spacetime_for_stcoord tem_spacetime_for_stcoord proc~tem_spacetime_for_stcoord->proc~tem_spacetime_for_coord interface~tem_spacetime_for tem_spacetime_for interface~tem_spacetime_for->proc~tem_spacetime_for_coord interface~tem_spatial_for tem_spatial_for interface~tem_spatial_for->proc~tem_spatial_vector_for_coord interface~tem_spatial_for->proc~tem_spatial_for_coord proc~tem_spatial_scalar_for_index tem_spatial_scalar_for_index proc~tem_spatial_scalar_for_index->proc~tem_spatial_for_coord proc~tem_spatial_vector_for_index tem_spatial_vector_for_index proc~tem_spatial_vector_for_index->proc~tem_spatial_vector_for_coord

Contents


Variables

TypeVisibilityAttributesNameInitial
real(kind=rk), private :: diffa(me%nVertices,2)
real(kind=rk), private :: diffb(me%nVertices,2)
real(kind=rk), private :: anglesum
integer, private :: iDir