class AbinitPhononOutputMixin(AbinitDftpOutputMixin): """ Mixin providing generic fiels for phonon calculation .. rubric:: Inheritance Diagram .. inheritance-diagram:: AbinitPhononOutputMixin """ phonon_bs = AbiFileField(abiext="PHBST.nc", abiform="b", db_field='phonon_bs_id', collection_name='phonon_bs_fs') phonon_dos = AbiFileField(abiext="PHDOS.nc", abiform="b", db_field='phonon_dos_id', collection_name='phonon_dos_fs') anaddb_nc = AbiFileField(abiext="anaddb.nc", abiform="b", db_field='anaddb_nc_id', collection_name='anaddb_nc_fs')
class AbinitDftpOutputMixin(object): """ Mixin providing generic fiels for dfpt calculation """ ddb = AbiFileField(abiext="DDB", abiform="t", help_text="DDB file produced by a dfpt falculation", db_field='ddb_id', collection_name='ddb_fs') structure = MSONField(required=True, help_text="The structure used for the calculation.")
class AbinitGSOutputMixin(GroundStateOutputMixin): """ Mixin providing generic fiels for abinit ground state calculation .. rubric:: Inheritance Diagram .. inheritance-diagram:: AbinitGSOutputMixin """ gsr = AbiFileField(abiext="GSR.nc", abiform="b", help_text="Gsr file produced by the Ground state calculation", db_field='gsr_id', collection_name='gs_gsr_fs')
class DteAbinitOutput(AbinitDftpOutputMixin, EmbeddedDocument): """ EmbeddedDocument containing the typical outputs for a DTE workflow. .. rubric:: Inheritance Diagram .. inheritance-diagram:: DteAbinitOutput """ gs_gsr = AbiFileField(abiext="GSR.nc", abiform="b", help_text="Gsr file produced by the Ground state calculation", db_field='gs_gsr_id', collection_name='phonon_gs_gsr_fs') gs_outfile = AbiGzipFileField(abiext="abo", abiform="t", db_field='gs_outfile_id', collection_name='phonon_gs_outfile_fs') anaddb_nc = AbiFileField(abiext="anaddb.nc", abiform="b", db_field='anaddb_nc_id', collection_name='anaddb_nc_fs') epsinf = ListField(ListField(FloatField()), help_text="Macroscopic dielectric tensor") eps0 = ListField(ListField(FloatField()), help_text="Relaxed ion Macroscopic dielectric tensor") dchide = ListField(ListField(ListField(FloatField())), help_text="Non-linear optical susceptibilities tensor") dchidt = ListField(ListField(ListField(ListField(FloatField()))), help_text="First-order change in the linear dielectric susceptibility")
class PhononAbinitOutput(AbinitPhononOutputMixin, EmbeddedDocument): gs_gsr = AbiFileField( abiext="GSR.nc", abiform="b", help_text="Gsr file produced by the Ground state calculation", db_field='gs_gsr_id', collection_name='phonon_gs_gsr_fs') gs_outfile = AbiGzipFileField(abiext="abo", abiform="t", db_field='gs_outfile_id', collection_name='phonon_gs_outfile_fs')
class PhononAbinitOutput(AbinitPhononOutputMixin, EmbeddedDocument): """ EmbeddedDocument containing the typical outputs for a phonon workflow. .. rubric:: Inheritance Diagram .. inheritance-diagram:: PhononAbinitOutput """ gs_gsr = AbiFileField(abiext="GSR.nc", abiform="b", help_text="Gsr file produced by the Ground state calculation", db_field='gs_gsr_id', collection_name='phonon_gs_gsr_fs') gs_outfile = AbiGzipFileField(abiext="abo", abiform="t", db_field='gs_outfile_id', collection_name='phonon_gs_outfile_fs')
class RelaxAbinitOutput(AbinitGSOutputMixin, EmbeddedDocument): """ EmbeddedDocument containing the typical outputs for a relaxation workflow. .. rubric:: Inheritance Diagram .. inheritance-diagram:: RelaxAbinitOutput """ hist_files = DictField(field=AbiFileField(abiext="HIST.nc", abiform="b", collection_name='relax_hist_fs'), help_text="Series of HIST files produced during the relaxation. Keys should provide the type" " of relaxation (ion, ioncell) and the ordering", db_field='relax_hist_files_ids') outfile_ioncell = AbiGzipFileField(abiext="abo", abiform="t", db_field='outfile_ioncell_id', collection_name='relax_outfile_fs')
class RelaxAbinitOutput(AbinitGSOutputMixin, EmbeddedDocument): hist_files = DictField( field=AbiFileField(abiext="HIST.nc", abiform="b", collection_name='relax_hist_fs'), help_text= "Series of HIST files produced during the relaxation. Keys should provide the type" " of relaxation (ion, ioncell) and the ordering", db_field='relax_hist_files_ids') outfile_ioncell = AbiGzipFileField(abiext="abo", abiform="t", db_field='outfile_ioncell_id', collection_name='relax_outfile_fs')