Documentation for module helium_common

Independent helium subroutines shared with other modules

source: helium_common.F
Loading...

public Subroutines/Functions:

SUBROUTINE
helium_boxmean_3d (helium, a, b, c)
Calculate the point equidistant from two other points a and b within the helium box - 3D version
Calculate probability distribution of the permutation lengths
Calculate helium radial distribution functions wrt positions given by using the atomic weights given by .
SUBROUTINE
helium_calc_rho (helium)
Calculate helium density distribution functions and store them in helium%rho_inst
FUNCTION
REAL(dp)
helium_com (helium)
Calculate center of mass
Given the atom number and permutation state return the cycle number the atom belongs to.
FUNCTION
INTEGER
helium_cycle_of (element, permutation)
Given an element of a permutation return the cycle it belongs to.
FUNCTION
REAL(dp)
helium_eval_expansion (helium, r, rp, tab, cut)
Calculate the pair-product action or energy by evaluating the power series expansion according to Eq. 4.46 in Ceperley 1995.
Given the atom index and permutation state returns .TRUE. if the atom belongs to a winding path, .FASLE. otherwise.
Given the atom number and permutation state return the length of the path this atom belongs to.
SUBROUTINE
helium_pbc (helium, r, enforce)
General PBC routine for helium.
Rotate helium particles in imaginary time by nslices
Set coordinate system for RDF calculations
FUNCTION
REAL(dp)
helium_spline (spl, xx)
...
Return total moment of inertia divided by m_He
Return total projected area
Return total winding number
...

SUBROUTINEhelium_boxmean_3d(helium, a, b, c)

Calculate the point equidistant from two other points a and b within the helium box - 3D version

Arguments:
POINTER
:: helium helium environment for which
REAL(dp),
INTENT(in)
:: a(3) vectors for which to find the mean within the He box
REAL(dp),
INTENT(in)
:: b(3) vectors for which to find the mean within the He box
REAL(dp),
INTENT(out)
:: c(3) ...

SUBROUTINEhelium_calc_plength(helium)

Calculate probability distribution of the permutation lengths

Arguments:
POINTER
:: helium ...

SUBROUTINEhelium_calc_rdf(helium, centers)

Calculate helium radial distribution functions wrt positions given by using the atomic weights given by .

Arguments:
POINTER
:: helium ...
REAL(dp),
POINTER
:: centers(:) ...

SUBROUTINEhelium_calc_rho(helium)

Calculate helium density distribution functions and store them in helium%rho_inst

Arguments:
POINTER
:: helium ...

FUNCTIONhelium_com(helium)

Calculate center of mass

Return Value ::
REAL(dp)
Arguments:
POINTER
:: helium ...

FUNCTIONhelium_cycle_number(helium, atom_number, permutation)

Given the atom number and permutation state return the cycle number the atom belongs to.

Return Value ::
INTEGER
Arguments:
POINTER
:: helium ...
INTEGER,
INTENT(in)
:: atom_number ...
INTEGER,
POINTER
:: permutation(:) ...

FUNCTIONhelium_cycle_of(element, permutation)

Given an element of a permutation return the cycle it belongs to.

Return Value ::
INTEGER
Arguments:
INTEGER,
INTENT(in)
:: element ...
INTEGER,
INTENT(in),
POINTER
:: permutation(:) ...

FUNCTIONhelium_eval_expansion(helium, r, rp, tab, cut)

Calculate the pair-product action or energy by evaluating the power series expansion according to Eq. 4.46 in Ceperley 1995.

Return Value ::
REAL(dp)
Arguments:
POINTER
:: helium ...
REAL(dp),
INTENT(in)
:: r(3) ...
REAL(dp),
INTENT(in)
:: rp(3) ...
POINTER
:: tab(:,:) ...
INTEGER,
INTENT(in)
:: cut ...

FUNCTIONhelium_is_winding(helium, atmidx, pos, permutation)

Given the atom index and permutation state returns .TRUE. if the atom belongs to a winding path, .FASLE. otherwise.

Return Value ::
LOGICAL
Arguments:
POINTER
:: helium ...
INTEGER,
INTENT(in)
:: atmidx ...
REAL(dp),
POINTER
:: pos(:,:,:) ...
INTEGER,
POINTER
:: permutation(:) ...

FUNCTIONhelium_path_length(helium, atom_number, permutation)

Given the atom number and permutation state return the length of the path this atom belongs to.

Return Value ::
INTEGER
Arguments:
POINTER
:: helium ...
INTEGER,
INTENT(in)
:: atom_number ...
INTEGER,
POINTER
:: permutation(:) ...

SUBROUTINEhelium_pbc(helium, r, enforce)

General PBC routine for helium.

Arguments:
POINTER
:: helium ...
REAL(dp),
INTENT(inout)
:: r(3) ...
LOGICAL,
OPTIONAL
:: enforce ...

SUBROUTINEhelium_rotate(helium, nslices)

Rotate helium particles in imaginary time by nslices

Arguments:
POINTER
:: helium ...
INTEGER,
INTENT(in)
:: nslices ...

SUBROUTINEhelium_set_rdf_coord_system(helium, pint_env)

Set coordinate system for RDF calculations

Arguments:
POINTER
:: helium ...
POINTER
:: pint_env ...

FUNCTIONhelium_spline(spl, xx)

...

Return Value ::
REAL(dp)
Arguments:
POINTER
:: spl ...
REAL(dp),
INTENT(in)
:: xx ...

FUNCTIONhelium_total_moment_of_inertia(helium)

Return total moment of inertia divided by m_He

Return Value ::
REAL(dp)
Arguments:
POINTER
:: helium ...

FUNCTIONhelium_total_projected_area(helium)

Return total projected area

Return Value ::
REAL(dp)
Arguments:
POINTER
:: helium ...

FUNCTIONhelium_total_winding_number(helium)

Return total winding number

Return Value ::
REAL(dp)
Arguments:
POINTER
:: helium ...

SUBROUTINEhelium_update_transition_matrix(helium)

...

Arguments:
POINTER
:: helium ...