estimate_lengthscale_field Module Procedure

module procedure estimate_lengthscale_field module function estimate_lengthscale_field(this, get_field, n_mat) result(scales)

Uses

  • proc~~estimate_lengthscale_field~~UsesGraph proc~estimate_lengthscale_field estimate_lengthscale_field constants constants proc~estimate_lengthscale_field->constants module~utility utility proc~estimate_lengthscale_field->module~utility module~utility->constants matrix matrix module~utility->matrix

Estimate typical length scales, one per each matter object, by computing , where is a field given as input, and represent a derivative of it. Presently, the derivatives are computed separately along each spatial dimension, as 1D derivatives.

FT 10.02.2022


Arguments

Type IntentOptional Attributes Name
class(idbase), intent(inout) :: this
function get_field(x, y, z) result(val)

Returns the value of a field at the desired point

Arguments
Type IntentOptional Attributes Name
double precision, intent(in) :: x

coordinate of the desired point

double precision, intent(in) :: y

coordinate of the desired point

double precision, intent(in) :: z

coordinate of the desired point

Return Value double precision

Value of the field at

integer, intent(in) :: n_mat

Return Value double precision, DIMENSION(n_mat)

Array of the minimum over the lattices that surround each matter object


Called by

proc~~estimate_lengthscale_field~~CalledByGraph proc~estimate_lengthscale_field estimate_lengthscale_field interface~estimate_lengthscale_field estimate_lengthscale_field interface~estimate_lengthscale_field->proc~estimate_lengthscale_field

Contents


Variables

Type Visibility Attributes Name Initial
double precision, private :: center(3)

Temporary array to store the centers of the matter objects

double precision, private :: dx(n_mat)

Uniform spacings of the lattices

type(field), private, DIMENSION(n_mat) :: field_mat
integer, private :: i
integer, private :: i_mat

Index running over the matter objects

integer, private :: ig
integer, private :: j
integer, private :: jg
integer, private :: k
integer, private :: kg
integer, private, parameter :: n = 350

Number of grid points along the shortest size of the matter object

integer, private, parameter :: nghost = 4

Number of matter objects in the physical system

integer, private :: nx(n_mat)
integer, private :: ny(n_mat)
integer, private :: nz(n_mat)
double precision, private :: sizes(6)

Temporary array to store the sizes of the matter objects

double precision, private :: x
double precision, private :: xL(n_mat)

Left boundaries of the lattices in the direction

double precision, private :: xR(n_mat)

Right boundaries of the lattices in the direction

double precision, private :: y
double precision, private :: yL(n_mat)

Left boundaries of the lattices in the direction

double precision, private :: yR(n_mat)

Right boundaries of the lattices in the direction

double precision, private :: z
double precision, private :: zL(n_mat)

Left boundaries of the lattices in the direction

double precision, private :: zR(n_mat)

Right boundaries of the lattices in the direction


Derived Types

type ::  field

Components

Type Visibility Attributes Name Initial
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: der
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: ratio
double precision, public, DIMENSION(:,:,:), ALLOCATABLE :: val