diff --git a/stinx/input.py b/stinx/input.py index dcd5602..9c47ed8 100644 --- a/stinx/input.py +++ b/stinx/input.py @@ -991,6 +991,7 @@ def create(**kwargs): ricQN (dict): (Optional) ric (dict): The ric group defines the parameters for internal coordinate generation. (Optional) ricTS (dict): The ricTS group requests a quasi-Newton optimization for 1st-order saddle points (transition states) using updates [11] of an on-the-fly optimized internal-coordinate based initial guess for the Hessian [10]. An initial guess for the reaction coordinate must be known. Note: This is an experimental feature. The optimization should be started within the saddle point region (one negative eigenvalue of the Hesse matrix), otherwise, the algorithm may converge to a different stationary point (a minimum, or a higher-order saddle point). (Optional) + evalForces (dict): The evalForces group is used to calculate forces and write them to a file in sx-format. This is useful for single-point calculations without a structure optimization. It should be used after an electronic loop. (Optional) """ return fill_values(**kwargs) @@ -2305,3 +2306,18 @@ def create( spinScaling=spinScaling, dielecConstant=dielecConstant, ) + + class evalForces: + @staticmethod + def create( + file: str, + ): + """ + The evalForces group is used to calculate forces and write them to a file in sx-format. This is useful for single-point calculations without a structure optimization. It should be used after an electronic loop. + + Args: + file (str): The file to write the forces to. + """ + return fill_values( + file=file, + ) diff --git a/stinx/output.py b/stinx/output.py index 4877db4..dc61cf3 100644 --- a/stinx/output.py +++ b/stinx/output.py @@ -146,9 +146,8 @@ def collect_spins_dat(file_name="spins.dat", cwd=None, index_permutation=None): return {"atom_scf_spins": _splitter(s, spins[:, 0])} -def collect_relaxed_hist(file_name="relaxHist.sx", cwd=None, index_permutation=None): +def collect_eval_forces(file_name, cwd=None, index_permutation=None): """ - Args: file_name (str): file name cwd (str): directory path diff --git a/stinx/src/input_data.yml b/stinx/src/input_data.yml index b9eefcd..6461386 100644 --- a/stinx/src/input_data.yml +++ b/stinx/src/input_data.yml @@ -1029,3 +1029,9 @@ sphinx: description: Drift filter bornOppenheimer: alias: sphinx.main.QN.bornOppenheimer + evalForces: + description: The evalForces group is used to calculate forces and write them to a file in sx-format. This is useful for single-point calculations without a structure optimization. It should be used after an electronic loop. + file: + data_type: str + required: true + description: The file to write the forces to.