1515
1616from  atomate2 .ase .jobs  import  AseRelaxMaker 
1717from  atomate2 .forcefields  import  MLFF , _get_formatted_ff_name 
18- from  atomate2 .forcefields .schemas  import  ForceFieldTaskDocument 
18+ from  atomate2 .forcefields .schemas  import  (
19+     ForceFieldMoleculeTaskDocument ,
20+     ForceFieldStructureTaskDocument ,
21+     ForceFieldTaskDocument ,
22+ )
1923from  atomate2 .forcefields .utils  import  ase_calculator , revert_default_dtype 
2024
2125if  TYPE_CHECKING :
2226    from  collections .abc  import  Callable 
2327    from  pathlib  import  Path 
2428
2529    from  ase .calculators .calculator  import  Calculator 
26-     from  pymatgen .core .structure  import  Structure 
30+     from  pymatgen .core .structure  import  Molecule ,  Structure 
2731
2832logger  =  logging .getLogger (__name__ )
2933
@@ -48,7 +52,8 @@ def forcefield_job(method: Callable) -> job:
4852    This is a thin wrapper around :obj:`~jobflow.core.job.Job` that configures common 
4953    settings for all forcefield jobs. For example, it ensures that large data objects 
5054    (currently only trajectories) are all stored in the atomate2 data store. 
51-     It also configures the output schema to be a ForceFieldTaskDocument :obj:`.TaskDoc`. 
55+     It also configures the output schema to be a 
56+     ForceFieldStructureTaskDocument :obj:`.TaskDoc`. 
5257
5358    Any makers that return forcefield jobs (not flows) should decorate the 
5459    ``make`` method with @forcefield_job. For example: 
@@ -72,9 +77,7 @@ def make(structure):
7277    callable 
7378        A decorated version of the make function that will generate forcefield jobs. 
7479    """ 
75-     return  job (
76-         method , data = _FORCEFIELD_DATA_OBJECTS , output_schema = ForceFieldTaskDocument 
77-     )
80+     return  job (method , data = _FORCEFIELD_DATA_OBJECTS )
7881
7982
8083@dataclass  
@@ -118,7 +121,7 @@ class ForceFieldRelaxMaker(AseRelaxMaker):
118121    tags : list[str] or None 
119122        A list of tags for the task. 
120123    task_document_kwargs : dict (deprecated) 
121-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
124+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
122125    """ 
123126
124127    name : str  =  "Force field relax" 
@@ -146,15 +149,15 @@ def __post_init__(self) -> None:
146149
147150    @forcefield_job  
148151    def  make (
149-         self , structure : Structure , prev_dir : str  |  Path  |  None  =  None 
150-     ) ->  ForceFieldTaskDocument :
152+         self , structure : Molecule   |   Structure , prev_dir : str  |  Path  |  None  =  None 
153+     ) ->  ForceFieldStructureTaskDocument   |   ForceFieldMoleculeTaskDocument :
151154        """ 
152155        Perform a relaxation of a structure using a force field. 
153156
154157        Parameters 
155158        ---------- 
156-         structure: .Structure 
157-             pymatgen structure. 
159+         structure: .Structure or Molecule  
160+             pymatgen structure or molecule . 
158161        prev_dir : str or Path or None 
159162            A previous calculation directory to copy output files from. Unused, just 
160163                added to match the method signature of other makers. 
@@ -170,7 +173,7 @@ def make(
170173                stacklevel = 1 ,
171174            )
172175
173-         return  ForceFieldTaskDocument .from_ase_compatible_result (
176+         return  ForceFieldTaskDocument .from_ase_compatible_result_forcefield (
174177            str (self .force_field_name ),  # make mypy happy 
175178            ase_result ,
176179            self .steps ,
@@ -212,7 +215,7 @@ class ForceFieldStaticMaker(ForceFieldRelaxMaker):
212215    calculator_kwargs : dict 
213216        Keyword arguments that will get passed to the ASE calculator. 
214217    task_document_kwargs : dict (deprecated) 
215-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
218+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
216219    """ 
217220
218221    name : str  =  "Force field static" 
@@ -255,7 +258,7 @@ class CHGNetRelaxMaker(ForceFieldRelaxMaker):
255258    calculator_kwargs : dict 
256259        Keyword arguments that will get passed to the ASE calculator. 
257260    task_document_kwargs : dict (deprecated) 
258-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
261+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
259262    """ 
260263
261264    name : str  =  f"{ MLFF .CHGNet }   relax" 
@@ -291,7 +294,7 @@ class CHGNetStaticMaker(ForceFieldStaticMaker):
291294    calculator_kwargs : dict 
292295        Keyword arguments that will get passed to the ASE calculator. 
293296    task_document_kwargs : dict (deprecated) 
294-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
297+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
295298    """ 
296299
297300    name : str  =  f"{ MLFF .CHGNet }   static" 
@@ -334,7 +337,7 @@ class M3GNetRelaxMaker(ForceFieldRelaxMaker):
334337    calculator_kwargs : dict 
335338        Keyword arguments that will get passed to the ASE calculator. 
336339    task_document_kwargs : dict (deprecated) 
337-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
340+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
338341    """ 
339342
340343    name : str  =  f"{ MLFF .M3GNet }   relax" 
@@ -372,7 +375,7 @@ class M3GNetStaticMaker(ForceFieldStaticMaker):
372375    calculator_kwargs : dict 
373376        Keyword arguments that will get passed to the ASE calculator. 
374377    task_document_kwargs : dict (deprecated) 
375-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
378+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
376379    """ 
377380
378381    name : str  =  f"{ MLFF .M3GNet }   static" 
@@ -415,7 +418,7 @@ class NEPRelaxMaker(ForceFieldRelaxMaker):
415418    calculator_kwargs : dict 
416419        Keyword arguments that will get passed to the ASE calculator. 
417420    task_document_kwargs : dict (deprecated) 
418-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
421+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
419422    """ 
420423
421424    name : str  =  f"{ MLFF .NEP }   relax" 
@@ -451,7 +454,7 @@ class NEPStaticMaker(ForceFieldStaticMaker):
451454    calculator_kwargs : dict 
452455        Keyword arguments that will get passed to the ASE calculator. 
453456    task_document_kwargs : dict (deprecated) 
454-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
457+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
455458    """ 
456459
457460    name : str  =  f"{ MLFF .NEP }   static" 
@@ -494,7 +497,7 @@ class NequipRelaxMaker(ForceFieldRelaxMaker):
494497    calculator_kwargs : dict 
495498        Keyword arguments that will get passed to the ASE calculator. 
496499    task_document_kwargs : dict (deprecated) 
497-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
500+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
498501    """ 
499502
500503    name : str  =  f"{ MLFF .Nequip }   relax" 
@@ -529,7 +532,7 @@ class NequipStaticMaker(ForceFieldStaticMaker):
529532    calculator_kwargs : dict 
530533        Keyword arguments that will get passed to the ASE calculator. 
531534    task_document_kwargs : dict (deprecated) 
532-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
535+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
533536    """ 
534537
535538    name : str  =  f"{ MLFF .Nequip }   static" 
@@ -576,7 +579,7 @@ class MACERelaxMaker(ForceFieldRelaxMaker):
576579        trained for Matbench Discovery on the MPtrj dataset available at 
577580        https://figshare.com/articles/dataset/22715158. 
578581    task_document_kwargs : dict (deprecated) 
579-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
582+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
580583    """ 
581584
582585    name : str  =  f"{ MLFF .MACE_MP_0 }   relax" 
@@ -616,7 +619,7 @@ class MACEStaticMaker(ForceFieldStaticMaker):
616619        trained for Matbench Discovery on the MPtrj dataset available at 
617620        https://figshare.com/articles/dataset/22715158. 
618621    task_document_kwargs : dict (deprecated) 
619-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
622+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
620623    """ 
621624
622625    name : str  =  f"{ MLFF .MACE_MP_0 }   static" 
@@ -665,7 +668,7 @@ class SevenNetRelaxMaker(ForceFieldRelaxMaker):
665668        trained for Matbench Discovery on the MPtrj dataset available at 
666669        https://figshare.com/articles/dataset/22715158. 
667670    task_document_kwargs : dict (deprecated) 
668-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
671+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
669672    """ 
670673
671674    name : str  =  f"{ MLFF .SevenNet }   relax" 
@@ -707,7 +710,7 @@ class SevenNetStaticMaker(ForceFieldStaticMaker):
707710        trained for Matbench Discovery on the MPtrj dataset available at 
708711        https://figshare.com/articles/dataset/22715158. 
709712    task_document_kwargs : dict (deprecated) 
710-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
713+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
711714    """ 
712715
713716    name : str  =  f"{ MLFF .SevenNet }   static" 
@@ -747,7 +750,7 @@ class GAPRelaxMaker(ForceFieldRelaxMaker):
747750    calculator_kwargs : dict 
748751        Keyword arguments that will get passed to the ASE calculator. 
749752    task_document_kwargs : dict (deprecated) 
750-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
753+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
751754    """ 
752755
753756    name : str  =  f"{ MLFF .GAP }   relax" 
@@ -783,7 +786,7 @@ class GAPStaticMaker(ForceFieldStaticMaker):
783786    calculator_kwargs : dict 
784787        Keyword arguments that will get passed to the ASE calculator. 
785788    task_document_kwargs : dict (deprecated) 
786-         Additional keyword args passed to :obj:`.ForceFieldTaskDocument ()`. 
789+         Additional keyword args passed to :obj:`.ForceFieldStructureTaskDocument ()`. 
787790    """ 
788791
789792    name : str  =  f"{ MLFF .GAP }   static" 
0 commit comments