Documentation for module pint_normalmode

Data type and methods dealing with PI calcs in normal mode coords

source: pint_normalmode.F
Loading...

public Subroutines/Functions:

calculates the harmonic force in the normal mode basis
creates the data needed for a normal mode transformation
normalmode transformation for the forces
initializes the masses and fictitious masses compatible with the normal mode information
releases the normalmode environment
transform from the u variable to the x (back normal mode transformation for the positions)
Transforms from the x into the u variables using a normal mode transformation for the positions

SUBROUTINEnormalmode_calc_uf_h(normalmode_env, mass_beads, ux, uf_h, e_h)

calculates the harmonic force in the normal mode basis

Arguments:
POINTER
:: normalmode_env the normal mode environment
REAL(dp),
POINTER
:: mass_beads(:,:) the masses of the beads
REAL(dp),
POINTER
:: ux(:,:) the positions of the beads in the staging basis
REAL(dp),
POINTER
:: uf_h(:,:) the harmonic forces (not accelerations)
REAL(dp),
INTENT(out)
:: e_h ...

SUBROUTINEnormalmode_env_create(normalmode_env, normalmode_section, p, kt, propagator)

creates the data needed for a normal mode transformation

Arguments:
POINTER
:: normalmode_env ...
POINTER
:: normalmode_section ...
INTEGER,
INTENT(in)
:: p ...
REAL(dp),
INTENT(in)
:: kt ...
INTEGER,
INTENT(in)
:: propagator ...

SUBROUTINEnormalmode_f2uf(normalmode_env, uf, f)

normalmode transformation for the forces

Arguments:
POINTER
:: normalmode_env the environment for the normal mode transformation
REAL(dp),
INTENT(out)
:: uf(:,:) will contain the forces for the transformed variables afterwards
REAL(dp),
INTENT(in)
:: f(:,:) the forces to transform

SUBROUTINEnormalmode_init_masses(normalmode_env, mass, mass_beads, mass_fict, q)

initializes the masses and fictitious masses compatible with the normal mode information

Arguments:
POINTER
:: normalmode_env the definition of the normal mode transformation
REAL(dp),
INTENT(in)
:: mass(:) *input* the masses of the particles
REAL(dp),
INTENT(out),
OPTIONAL
:: mass_beads(:,:) masses of the beads
REAL(dp),
INTENT(out),
OPTIONAL
:: mass_fict(:,:) the fictitious masses
REAL(dp),
INTENT(out),
OPTIONAL
:: q(:) masses of the nose thermostats

SUBROUTINEnormalmode_release(normalmode_env)

releases the normalmode environment

Arguments:
POINTER
:: normalmode_env the normalmode_env to release

SUBROUTINEnormalmode_u2x(normalmode_env, ux, x)

transform from the u variable to the x (back normal mode transformation for the positions)

Arguments:
POINTER
:: normalmode_env the environment for the normal mode transformation
REAL(dp),
INTENT(in)
:: ux(:,:) the u variable (positions to be backtransformed)
REAL(dp),
INTENT(out)
:: x(:,:) will contain the positions

SUBROUTINEnormalmode_x2u(normalmode_env, ux, x)

Transforms from the x into the u variables using a normal mode transformation for the positions

Arguments:
POINTER
:: normalmode_env the environment for the normal mode transformation
REAL(dp),
INTENT(out)
:: ux(:,:) will contain the u variable
REAL(dp),
INTENT(in)
:: x(:,:) the positions to transform