geometry Submodule

This MODULE contains the implementation of the methods of TYPE bns_base that deal with the computation of the radii of the stars.

FT 27.09.2022



Uses

  • module~~geometry~~UsesGraph module~geometry geometry module~bns_base bns_base module~geometry->module~bns_base module~utility utility module~geometry->module~utility module~bns_base->module~utility module~id_base id_base module~bns_base->module~id_base constants constants module~utility->constants matrix matrix module~utility->matrix module~id_base->module~utility timing timing module~id_base->timing

Contents


Variables

Type Visibility Attributes Name Initial
double precision, private, parameter :: tol = 1.D-5

Module Procedures

module procedure find_center module function find_center(this, separation, x_sign, get_density) result(center)

Finds the center of a star, as the point where the density is maximal.

Read more…

Arguments

Type IntentOptional Attributes Name
class(bnsbase), intent(in) :: this

bnsbase object owning this PROCEDURE

double precision, intent(in) :: separation

Separation between the stars

double precision, intent(in) :: x_sign

Sign of the x coordinates of the point inside the star

procedure(get_density_at_pos), optional :: get_density

Return Value double precision

Center of a star, as the point where the density is maximal.

module procedure find_print_surfaces module subroutine find_print_surfaces(this)

Finds the surfaces of the stars, and prints them to a formatted file.

Read more…

Arguments

Type IntentOptional Attributes Name
class(bnsbase), intent(inout) :: this

bnsbase object owning this PROCEDURE

module procedure find_radius module function find_radius(this, center, vector, get_density) result(radius)

Finds the radius of a matter object, relative to a center and along a direction. The radius is determined as the first point where the density is zero.

Read more…

Arguments

Type IntentOptional Attributes Name
class(bnsbase), intent(in) :: this

bnsbase object owning this PROCEDURE

double precision, intent(in), DIMENSION(3) :: center

Center point relative to which the radius is measured

double precision, intent(in), DIMENSION(3) :: vector

Vector that defines the direction along which to measure the radius. If not normalized, it will be normalized.

procedure(get_density_at_pos), optional :: get_density

Return Value double precision

Radius of the star relative to center, along the direction specified by vector

module procedure find_surface module subroutine find_surface(this, center, n_theta, n_phi, surface)

Finds the surface of a star, using [[bnsbase::find_radius]] along many directions.

Read more…

Arguments

Type IntentOptional Attributes Name
class(bnsbase), intent(in) :: this

bnsbase object owning this PROCEDURE

double precision, intent(in), DIMENSION(3) :: center

Center point relative to which the radius is measured

integer, intent(in) :: n_theta

Number of points in for the colatitude

integer, intent(in) :: n_phi

Number of points in for the azimuth

double precision, intent(out), DIMENSION(:,:,:), ALLOCATABLE :: surface

Array storing the coordinates of the points on the surface