Documentation for module cell_opt_utils

contains a functional that calculates the energy and its derivatives for the geometry optimizer

source: cell_opt_utils.F
Loading...

public Subroutines/Functions:

Apply cell constraints
Computes the derivatives for the cell
Transform a general cell matrix into an upper triangular one
creates a new logger used for cell optimization algorithm
releases a new logger used for cell optimization algorithm
Reads the external pressure tensor

SUBROUTINEapply_cell_constraints(gradient, cell, keep_angles, keep_symmetry, constraint_id)

Apply cell constraints

Arguments:
REAL(dp),
POINTER
:: gradient(:) ...
TYPE(cell_type),
POINTER
:: cell ...
LOGICAL,
INTENT(in)
:: keep_angles ...
LOGICAL,
INTENT(in)
:: keep_symmetry ...
INTEGER,
INTENT(in)
:: constraint_id ...

SUBROUTINEget_dg_dh(gradient, av_ptens, pres_ext, cell, mtrx, keep_angles, keep_symmetry, pres_int, constraint_id)

Computes the derivatives for the cell

Arguments:
REAL(dp),
POINTER
:: gradient(:) ...
REAL(dp),
INTENT(in)
:: av_ptens(3,3) ...
REAL(dp),
INTENT(in)
:: pres_ext ...
TYPE(cell_type),
POINTER
:: cell ...
REAL(dp),
INTENT(in)
:: mtrx(3,3) ...
LOGICAL,
INTENT(in),
OPTIONAL
:: keep_angles ...
LOGICAL,
INTENT(in),
OPTIONAL
:: keep_symmetry ...
REAL(dp),
INTENT(out)
:: pres_int ...
INTEGER,
INTENT(in),
OPTIONAL
:: constraint_id ...

SUBROUTINEget_ut_cell_matrix(cell)

Transform a general cell matrix into an upper triangular one

Arguments:
TYPE(cell_type),
POINTER
:: cell ...

SUBROUTINEgopt_new_logger_create(new_logger, root_section, para_env, project_name, id_run)

creates a new logger used for cell optimization algorithm

Arguments:
POINTER
:: new_logger ...
POINTER
:: root_section ...
POINTER
:: para_env ...
INTENT(out)
:: project_name ...
INTEGER,
INTENT(in)
:: id_run ...

SUBROUTINEgopt_new_logger_release(new_logger, root_section, para_env, project_name, id_run)

releases a new logger used for cell optimization algorithm

Arguments:
POINTER
:: new_logger ...
POINTER
:: root_section ...
POINTER
:: para_env ...
INTENT(in)
:: project_name ...
INTEGER,
INTENT(in)
:: id_run ...

SUBROUTINEread_external_press_tensor(geo_section, cell, pres_ext, mtrx, rot)

Reads the external pressure tensor

Arguments:
POINTER
:: geo_section ...
TYPE(cell_type),
POINTER
:: cell ...
REAL(dp),
INTENT(out)
:: pres_ext ...
REAL(dp),
INTENT(out)
:: mtrx(3,3) ...
REAL(dp),
INTENT(in)
:: rot(3,3) ...