Documentation for module force_env_types

Interface for the force calculations

source: force_env_types.F
Loading...

public Types:

force_env_type
wrapper to abstract the force evaluation of the various methods
force_env_p_type
allows for the creation of an array of force_env

public Subroutines/Functions:

returns various attributes about the force environment
returns the particle forces in a dimension(*) array
FUNCTION
INTEGER
force_env_get_natom (force_env)
returns the number of atoms
returns the number of particles in a force environment
returns the particle positions in a dimension(*) array
returns the particle velocities in a dimension(*) array
SUBROUTINE RECURSIVE
force_env_release (force_env)
releases the given force env
retains the given force env
changes some attributes of the force_env
returns the order of the multiple force_env

Parameters:

INTEGER
:: use_eip_force = 505
INTEGER
:: use_fist_force = 501
INTEGER
:: use_mixed_force = 506
CHARACTER(10)
:: use_prog_name(501:506) = (/"fist ","qs ","qmmm ","qmmmx ","eip ","mixed "/)
INTEGER
:: use_qmmm = 503
INTEGER
:: use_qmmmx = 504
INTEGER
:: use_qs_force = 502

public Types:

TYPE :: force_env_p_type

allows for the creation of an array of force_env


POINTER :: force_env a force environment (see above)

TYPE :: force_env_type

wrapper to abstract the force evaluation of the various methods


INTEGER
:: id_nr identification number
INTEGER
:: ref_count reference count (see doc/ReferenceCounting.html)
INTEGER
:: in_use which method is in use
INTEGER
:: method_name_id ...
REAL(dp)
:: additional_potential ...
POINTER :: fist_env the fist environment (allocated only if fist is in use)
POINTER :: meta_env the metadynamics environment, allocated if there is metadynamics
TYPE(fp_type),
POINTER :: fp_env the flexible partitioning environment read-only attributes (get them *only* through force_env_get):
POINTER :: qs_env qs_env (activated only if quickstep is in use)
POINTER :: eip_env ...
POINTER :: globenv the globenv to have the input that generated this force_env
POINTER :: para_env the parallel environment that contains all the parallel environment of the fragments
DIMENSION(:), POINTER :: sub_force_env ...
POINTER :: qmmm_env ...
POINTER :: qmmmx_env ...
POINTER :: mixed_env ...
POINTER :: force_env_section ...
POINTER :: root_section ...
LOGICAL
:: do_embedding ...

RECURSIVE SUBROUTINEforce_env_get(force_env, in_use, fist_env, qs_env, meta_env, fp_env, subsys, para_env, potential_energy, additional_potential, kinetic_energy, harmonic_shell, kinetic_shell, cell, sub_force_env, qmmm_env, qmmmx_env, eip_env, globenv, input, force_env_section, method_name_id, root_section, mixed_env)

returns various attributes about the force environment

Arguments:
POINTER
:: force_env the force environment you what informations about
INTEGER,
INTENT(out),
OPTIONAL
:: in_use ...
OPTIONAL, POINTER
:: fist_env ...
OPTIONAL, POINTER
:: qs_env ...
OPTIONAL, POINTER
:: meta_env ...
TYPE(fp_type),
OPTIONAL, POINTER
:: fp_env ...
OPTIONAL, POINTER
:: subsys ...
OPTIONAL, POINTER
:: para_env ...
REAL(dp),
INTENT(out),
OPTIONAL
:: potential_energy ...
REAL(dp),
INTENT(out),
OPTIONAL
:: additional_potential ...
REAL(dp),
INTENT(out),
OPTIONAL
:: kinetic_energy ...
REAL(dp),
INTENT(out),
OPTIONAL
:: harmonic_shell ...
REAL(dp),
INTENT(out),
OPTIONAL
:: kinetic_shell ...
TYPE(cell_type),
OPTIONAL, POINTER
:: cell ...
OPTIONAL, POINTER
:: sub_force_env(:) ...
OPTIONAL, POINTER
:: qmmm_env ...
OPTIONAL, POINTER
:: qmmmx_env ...
OPTIONAL, POINTER
:: eip_env ...
OPTIONAL, POINTER
:: globenv ...
OPTIONAL, POINTER
:: input ...
OPTIONAL, POINTER
:: force_env_section ...
INTEGER,
INTENT(out),
OPTIONAL
:: method_name_id ...
OPTIONAL, POINTER
:: root_section ...
OPTIONAL, POINTER
:: mixed_env ...

SUBROUTINEforce_env_get_frc(force_env, frc, n)

returns the particle forces in a dimension(*) array

Arguments:
POINTER
:: force_env the force_env you want to get the forces
REAL(dp),
INTENT(out)
:: frc(*) the array of the forces
INTEGER,
INTENT(in)
:: n ...

FUNCTIONforce_env_get_natom(force_env)

returns the number of atoms

Return Value ::
INTEGER
the number of atoms
Arguments:
POINTER
:: force_env the force_env you what information about

FUNCTIONforce_env_get_nparticle(force_env)

returns the number of particles in a force environment

Return Value ::
INTEGER
the number of particles
Arguments:
POINTER
:: force_env the force_env you what information about

SUBROUTINEforce_env_get_pos(force_env, pos, n)

returns the particle positions in a dimension(*) array

Arguments:
POINTER
:: force_env the force_env you want to get the positions
REAL(dp),
INTENT(out)
:: pos(*) the array of the positions
INTEGER,
INTENT(in)
:: n ...

SUBROUTINEforce_env_get_vel(force_env, vel, n)

returns the particle velocities in a dimension(*) array

Arguments:
POINTER
:: force_env the force_env you want to get the velocities
REAL(dp),
INTENT(out)
:: vel(*) the array of the velocities
INTEGER,
INTENT(in)
:: n ...

RECURSIVE SUBROUTINEforce_env_release(force_env)

releases the given force env

Arguments:
POINTER
:: force_env the force environment to release

SUBROUTINEforce_env_retain(force_env)

retains the given force env

Arguments:
POINTER
:: force_env the force environment to retain

SUBROUTINEforce_env_set(force_env, meta_env, fp_env, force_env_section, method_name_id, additional_potential)

changes some attributes of the force_env

Arguments:
POINTER
:: force_env the force environment where the cell should be changed
OPTIONAL, POINTER
:: meta_env the new meta environment
TYPE(fp_type),
OPTIONAL, POINTER
:: fp_env ...
OPTIONAL, POINTER
:: force_env_section ...
INTEGER,
OPTIONAL
:: method_name_id ...
REAL(dp),
INTENT(in),
OPTIONAL
:: additional_potential ...

SUBROUTINEmultiple_fe_list(force_env_sections, root_section, i_force_eval, nforce_eval)

returns the order of the multiple force_env

Arguments:
POINTER
:: force_env_sections ...
POINTER
:: root_section ...
INTEGER,
POINTER
:: i_force_eval(:) ...
INTEGER
:: nforce_eval ...