Is your feature request related to a problem? Please describe.
I think it would be a good idea to have some parsers implemented for ADF calculations of NMR shielding tensors since there is a lot of data to be sifted through.
Describe the solution you'd like
I think it'd be good if we have some flexible methods that can be useful in most NMR calculations. This would extend to spin-spin coupling tensors as they are part of the same calculations.
Additional context
I have been going back and forth in determining the best way to implement this. Since ADF has the ability to restart the calculations from a TAPE10 file, I'm leaning towards having the parsers separate from the exatomic.adf.output.Output code and in the exatomic.adf.nmr.output.Output.
My reasoning for this are the following:
The fragment building calculations are the ones covered by the exatomic.adf.output.Output parsers and they are a separate calculation from the NMR calculation.
Building the fragments may not happen every single time as one can start the NMR calculation from the TAPE10 restart file. This would lead to the parser failing unless we make a bunch of conditional statements.
I think it makes more sense to extract the data from the same output block. I.e. for each calculation that has fundamentally different process and there is no crossover it may be good to have a parser specifically for that.
There is no overlap in the parsing strings in the outputs for the atom tables.
I think this will mark an important point in how the ADF data parsing will proceed in the future, so I really would like to take the time to go through this slowly so we do not have to do a re-write down the line. I have attached an output that I will use as a test case for the code.
pf3-nmr-b3lyp.txt
I would also like add parsing frequency and gradient data to this issue.
I want to also generalize the atom parsing so that we can extract the frames from a geometry optimization.
Is your feature request related to a problem? Please describe. I think it would be a good idea to have some parsers implemented for ADF calculations of NMR shielding tensors since there is a lot of data to be sifted through.
Describe the solution you'd like I think it'd be good if we have some flexible methods that can be useful in most NMR calculations. This would extend to spin-spin coupling tensors as they are part of the same calculations.
Additional context I have been going back and forth in determining the best way to implement this. Since ADF has the ability to restart the calculations from a TAPE10 file, I'm leaning towards having the parsers separate from the
exatomic.adf.output.Output
code and in theexatomic.adf.nmr.output.Output
. My reasoning for this are the following:exatomic.adf.output.Output
parsers and they are a separate calculation from the NMR calculation.I think this will mark an important point in how the ADF data parsing will proceed in the future, so I really would like to take the time to go through this slowly so we do not have to do a re-write down the line. I have attached an output that I will use as a test case for the code. pf3-nmr-b3lyp.txt