(git:3add494)
helium_common Module Reference

Independent helium subroutines shared with other modules. More...

Functions/Subroutines

subroutine, public helium_pbc (helium, r, enforce)
 General PBC routine for helium. More...
 
subroutine, public helium_boxmean_3d (helium, a, b, c)
 Calculate the point equidistant from two other points a and b within the helium box - 3D version. More...
 
subroutine, public helium_calc_rho (helium)
 Calculate helium density distribution functions and store them in heliumrho_inst. More...
 
subroutine, public helium_calc_rdf (helium)
 Calculate helium radial distribution functions wrt positions given by <centers> using the atomic weights given by <weights>. More...
 
pure subroutine, public helium_calc_plength (helium)
 Calculate probability distribution of the permutation lengths. More...
 
pure subroutine, public helium_rotate (helium, nslices)
 Rotate helium particles in imaginary time by nslices. More...
 
real(kind=dp) function, public helium_eval_expansion (helium, r, rp, work, action)
 Calculate the pair-product action or energy by evaluating the power series expansion according to Eq. 4.46 in Ceperley 1995. More...
 
real(kind=dp) function, public helium_eval_chain (helium, rchain, nchain, aij, vcoef, energy)
 Calculate the pair-product action or energy by evaluating the power series expansion according to Eq. 4.46 in Ceperley 1995. More...
 
subroutine, public helium_update_transition_matrix (helium)
 ... More...
 
real(kind=dp) function, public helium_spline (spl, xx)
 ... More...
 
integer function, public helium_cycle_number (helium, atom_number, permutation)
 Given the atom number and permutation state return the cycle number the atom belongs to. More...
 
pure integer function, public helium_path_length (helium, atom_number, permutation)
 Given the atom number and permutation state return the length of the path this atom belongs to. More...
 
pure integer function, dimension(:), pointer, public helium_cycle_of (element, permutation)
 Given an element of a permutation return the cycle it belongs to. More...
 
real(kind=dp) function, dimension(3), public helium_total_winding_number (helium)
 Return total winding number. More...
 
real(kind=dp) function, dimension(3), public helium_total_projected_area (helium)
 Return total projected area. More...
 
real(kind=dp) function, dimension(3), public helium_total_moment_of_inertia (helium)
 Return total moment of inertia divided by m_He. More...
 
pure subroutine, public helium_update_coord_system (helium, pint_env)
 Set coordinate system, e.g. for RHO calculations. More...
 
pure subroutine, public helium_set_rdf_coord_system (helium, pint_env)
 Set coordinate system for RDF calculations. More...
 
pure real(kind=dp) function, dimension(3), public helium_com (helium)
 Calculate center of mass. More...
 
logical function, public helium_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. More...
 

Detailed Description

Independent helium subroutines shared with other modules.

Author
Lukasz Walewski
Date
2009-07-14
Note
Avoiding circular deps: do not USE any other helium_* modules here.

Function/Subroutine Documentation

◆ helium_pbc()

subroutine, public helium_common::helium_pbc ( type(helium_solvent_type), intent(in)  helium,
real(kind=dp), dimension(3), intent(inout)  r,
logical, optional  enforce 
)

General PBC routine for helium.

Parameters
helium...
r...
enforce...
Date
2019-12-09
Author
Harald Forbert
Note
Apply periodic boundary conditions as needed
Combines several older routines into a single simpler/faster routine

Definition at line 80 of file helium_common.F.

Here is the caller graph for this function:

◆ helium_boxmean_3d()

subroutine, public helium_common::helium_boxmean_3d ( type(helium_solvent_type), intent(in)  helium,
real(kind=dp), dimension(3), intent(in)  a,
real(kind=dp), dimension(3), intent(in)  b,
real(kind=dp), dimension(3), intent(out)  c 
)

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

Parameters
heliumhelium environment for which
avectors for which to find the mean within the He box
bvectors for which to find the mean within the He box
c...
History
2009-10-02 renamed, originally was helium_boxmean [lwalewski] 2009-10-02 redesigned so it is now called as a subroutine [lwalewski] 2009-10-02 redesigned so it now gets/returns a 3D vectors [lwalewski]
Author
hforbert

Definition at line 204 of file helium_common.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ helium_calc_rho()

subroutine, public helium_common::helium_calc_rho ( type(helium_solvent_type), intent(in)  helium)

Calculate helium density distribution functions and store them in heliumrho_inst.

Parameters
helium...
Date
2011-06-14
Author
Lukasz Walewski

Definition at line 369 of file helium_common.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ helium_calc_rdf()

subroutine, public helium_common::helium_calc_rdf ( type(helium_solvent_type), intent(in)  helium)

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

Parameters
helium...
Date
2009-07-22
History
2018-10-19 Changed to bead-wise RDFs of solute-He and He-He [cschran]
Author
Lukasz Walewski

Definition at line 629 of file helium_common.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ helium_calc_plength()

pure subroutine, public helium_common::helium_calc_plength ( type(helium_solvent_type), intent(inout)  helium)

Calculate probability distribution of the permutation lengths.

Parameters
helium...
Date
2010-06-07
Author
Lukasz Walewski
Note
Valid permutation path length is an integer (1, NATOMS), number of paths of a given length is calculated here and average over inner loop iterations and helium environments is done in helium_sample.

Definition at line 762 of file helium_common.F.

Here is the caller graph for this function:

◆ helium_rotate()

pure subroutine, public helium_common::helium_rotate ( type(helium_solvent_type), intent(inout)  helium,
integer, intent(in)  nslices 
)

Rotate helium particles in imaginary time by nslices.

Parameters
helium...
nslices...
Author
hforbert
Note
Positions of helium beads in heliumpos array are reorganized such that the indices are cyclically translated in a permutation-aware manner. heliumrelrot is given a new value that represents the new 'angle' of the beads. This is done modulo heliumbeads, so relrot should be always within 0 (no rotation) and heliumbeads-1 (almost full rotation). [lwalewski]

Definition at line 795 of file helium_common.F.

Here is the caller graph for this function:

◆ helium_eval_expansion()

real(kind=dp) function, public helium_common::helium_eval_expansion ( type(helium_solvent_type), intent(inout)  helium,
real(kind=dp), dimension(3), intent(in)  r,
real(kind=dp), dimension(3), intent(in)  rp,
real(kind=dp), dimension(:), intent(inout), contiguous  work,
logical, intent(in), optional  action 
)

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

Parameters
helium...
r...
rp...
work...
action...
Returns
...
Author
Harald Forbert

Definition at line 831 of file helium_common.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ helium_eval_chain()

real(kind=dp) function, public helium_common::helium_eval_chain ( type(helium_solvent_type), intent(inout)  helium,
real(kind=dp), dimension(3, nchain), intent(inout)  rchain,
integer, intent(in)  nchain,
real(kind=dp), dimension(nchain), intent(inout)  aij,
real(kind=dp), dimension(:), intent(inout)  vcoef,
logical, intent(in), optional  energy 
)

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

Parameters
helium...
rchain...
nchain...
aij...
vcoef...
energy...
Returns
...
Author
Harald Forbert
Note
This version calculates the action/energy for a chain segment

Definition at line 935 of file helium_common.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ helium_update_transition_matrix()

subroutine, public helium_common::helium_update_transition_matrix ( type(helium_solvent_type), intent(inout)  helium)

...

Parameters
helium...
Author
Harald Forbert

Definition at line 1057 of file helium_common.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ helium_spline()

real(kind=dp) function, public helium_common::helium_spline ( type(spline_data_type), intent(in)  spl,
real(kind=dp), intent(in)  xx 
)

...

Parameters
spl...
xx...
Returns
...
Author
Harald Forbert

Definition at line 1422 of file helium_common.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ helium_cycle_number()

integer function, public helium_common::helium_cycle_number ( type(helium_solvent_type), intent(inout)  helium,
integer, intent(in)  atom_number,
integer, dimension(:), pointer  permutation 
)

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

Parameters
helium...
atom_number...
permutation...
Returns
...
Date
2009-07-21
Author
Lukasz Walewski
Note
Cycles (or paths) are numbered from 1 to <num_cycles>, where <num_cycles> is in the range of (1, <heliumatoms>). if (num_cycles .EQ. 1) then all atoms belong to one cycle if (num_cycles .EQ. heliumatoms) then there are no cycles of length greater than 1 (i.e. no atoms are connected)

Definition at line 1484 of file helium_common.F.

Here is the caller graph for this function:

◆ helium_path_length()

pure integer function, public helium_common::helium_path_length ( type(helium_solvent_type), intent(in)  helium,
integer, intent(in)  atom_number,
integer, dimension(:), pointer  permutation 
)

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

Parameters
helium...
atom_number...
permutation...
Returns
...
Date
2009-10-07
Author
Lukasz Walewski

Definition at line 1594 of file helium_common.F.

Here is the caller graph for this function:

◆ helium_cycle_of()

pure integer function, dimension(:), pointer, public helium_common::helium_cycle_of ( integer, intent(in)  element,
integer, dimension(:), intent(in), pointer  permutation 
)

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

Parameters
element...
permutation...
Returns
...
Date
2013-12-10
Author
Lukasz Walewski
Note
This function allocates memory and returns a pointer to it, do not forget to deallocate once finished with the results.

Definition at line 1632 of file helium_common.F.

Here is the caller graph for this function:

◆ helium_total_winding_number()

real(kind=dp) function, dimension(3), public helium_common::helium_total_winding_number ( type(helium_solvent_type), intent(in)  helium)

Return total winding number.

Parameters
helium...
Returns
...
Date
2014-04-24
Author
Lukasz Walewski

Definition at line 1684 of file helium_common.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ helium_total_projected_area()

real(kind=dp) function, dimension(3), public helium_common::helium_total_projected_area ( type(helium_solvent_type), intent(in)  helium)

Return total projected area.

Parameters
helium...
Returns
...
Date
2014-04-24
Author
Lukasz Walewski

Definition at line 1862 of file helium_common.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ helium_total_moment_of_inertia()

real(kind=dp) function, dimension(3), public helium_common::helium_total_moment_of_inertia ( type(helium_solvent_type), intent(in)  helium)

Return total moment of inertia divided by m_He.

Parameters
helium...
Returns
...
Date
2014-04-24
Author
Lukasz Walewski

Definition at line 2121 of file helium_common.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ helium_update_coord_system()

pure subroutine, public helium_common::helium_update_coord_system ( type(helium_solvent_type), intent(inout)  helium,
type(pint_env_type), intent(in)  pint_env 
)

Set coordinate system, e.g. for RHO calculations.

Parameters
helium...
pint_env...
Date
2014-04-25
Author
Lukasz Walewski
Note
Sets the origin (center of the coordinate system) wrt which spatial distribution functions are calculated.
It can be extended later to set the axes of the coordinate system as well, e.g. for dynamic analysis with moving solute.

Definition at line 2334 of file helium_common.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ helium_set_rdf_coord_system()

pure subroutine, public helium_common::helium_set_rdf_coord_system ( type(helium_solvent_type), intent(inout)  helium,
type(pint_env_type), intent(in)  pint_env 
)

Set coordinate system for RDF calculations.

Parameters
helium...
pint_env...
Date
2014-04-25
History
2018-10-19 Changed to bead-wise RDFs of solute-He and He-He [cschran]
Author
Lukasz Walewski
Note
Sets the centers wrt which radial distribution functions are calculated.

Definition at line 2362 of file helium_common.F.

Here is the caller graph for this function:

◆ helium_com()

pure real(kind=dp) function, dimension(3), public helium_common::helium_com ( type(helium_solvent_type), intent(in)  helium)

Calculate center of mass.

Parameters
helium...
Returns
...
Date
2014-04-09
Author
Lukasz Walewski

Definition at line 2386 of file helium_common.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ helium_is_winding()

logical function, public helium_common::helium_is_winding ( type(helium_solvent_type), intent(in)  helium,
integer, intent(in)  atmidx,
real(kind=dp), dimension(:, :, :), pointer  pos,
integer, dimension(:), pointer  permutation 
)

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

Parameters
helium...
atmidx...
pos...
permutation...
Returns
...
Date
2010-09-21
Author
Lukasz Walewski
Note
The path winds around the periodic box if any component of its widing number vector differs from 0.

Definition at line 2495 of file helium_common.F.

Here is the call graph for this function:
Here is the caller graph for this function: