seminar:jacapo_object
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
seminar:jacapo_object [2020/08/18 13:28] – kimi | seminar:jacapo_object [2020/08/18 13:37] – kimi | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== | + | < |
+ | |||
+ | ase.calculators.jacapo.jacapo | ||
+ | index | ||
+ | / | ||
+ | python module for ASE2-free and Numeric-free dacapo
U{John Kitchin< | ||
+ | |||
+ | Modules | ||
+ | |||
+ | |||
+ | ase.calculators.jacapo.changed | ||
+ | exceptions | ||
+ | glob | ||
+ | logging | ||
+ | numpy | ||
+ | os | ||
+ | pickle | ||
+ | subprocess | ||
+ | string | ||
+ | sys | ||
+ | ase.calculators.jacapo.validate | ||
+ | |||
+ | Classes | ||
+ | |||
+ | |||
+ | Jacapo | ||
+ | exceptions.Exception(exceptions.BaseException) | ||
+ | DacapoAbnormalTermination | ||
+ | DacapoAborted | ||
+ | DacapoDryrun | ||
+ | DacapoInput | ||
+ | DacapoRunning | ||
+ | |||
+ | class DacapoAbnormalTermination(exceptions.Exception) | ||
+ | |||
+ | Raised when text file does not end correctly | ||
+ | |||
+ | |||
+ | Method resolution order: | ||
+ | DacapoAbnormalTermination | ||
+ | exceptions.Exception | ||
+ | exceptions.BaseException | ||
+ | __builtin__.object | ||
+ | Data descriptors defined here: | ||
+ | __weakref__ | ||
+ | list of weak references to the object (if defined) | ||
+ | |||
+ | Methods inherited from exceptions.Exception: | ||
+ | __init__(...) | ||
+ | x.__init__(...) initializes x; | ||
+ | |||
+ | Data and other attributes inherited from exceptions.Exception: | ||
+ | __new__ = < | ||
+ | T.__new__(S, | ||
+ | |||
+ | Methods inherited from exceptions.BaseException: | ||
+ | __delattr__(...) | ||
+ | x.__delattr__(' | ||
+ | __getattribute__(...) | ||
+ | x.__getattribute__(' | ||
+ | __getitem__(...) | ||
+ | x.__getitem__(y) < | ||
+ | __getslice__(...) | ||
+ | x.__getslice__(i, | ||
+ | |||
+ | Use of negative indices is not supported. | ||
+ | __reduce__(...) | ||
+ | __repr__(...) | ||
+ | x.__repr__() < | ||
+ | __setattr__(...) | ||
+ | x.__setattr__(' | ||
+ | __setstate__(...) | ||
+ | __str__(...) | ||
+ | x.__str__() < | ||
+ | __unicode__(...) | ||
+ | |||
+ | Data descriptors inherited from exceptions.BaseException: | ||
+ | __dict__ | ||
+ | args | ||
+ | message | ||
+ | |||
+ | class DacapoAborted(exceptions.Exception) | ||
+ | |||
+ | Raised when ncfile.status = ' | ||
+ | |||
+ | |||
+ | Method resolution order: | ||
+ | DacapoAborted | ||
+ | exceptions.Exception | ||
+ | exceptions.BaseException | ||
+ | __builtin__.object | ||
+ | |||
+ | Data descriptors defined here: | ||
+ | __weakref__ | ||
+ | list of weak references to the object (if defined) | ||
+ | |||
+ | Methods inherited from exceptions.Exception: | ||
+ | __init__(...) | ||
+ | x.__init__(...) initializes x; | ||
+ | |||
+ | Data and other attributes inherited from exceptions.Exception: | ||
+ | __new__ = < | ||
+ | T.__new__(S, | ||
+ | |||
+ | Methods inherited from exceptions.BaseException: | ||
+ | __delattr__(...) | ||
+ | x.__delattr__(' | ||
+ | __getattribute__(...) | ||
+ | x.__getattribute__(' | ||
+ | __getitem__(...) | ||
+ | x.__getitem__(y) < | ||
+ | __getslice__(...) | ||
+ | x.__getslice__(i, | ||
+ | |||
+ | Use of negative indices is not supported. | ||
+ | __reduce__(...) | ||
+ | __repr__(...) | ||
+ | x.__repr__() < | ||
+ | __setattr__(...) | ||
+ | x.__setattr__(' | ||
+ | __setstate__(...) | ||
+ | __str__(...) | ||
+ | x.__str__() < | ||
+ | __unicode__(...) | ||
+ | |||
+ | Data descriptors inherited from exceptions.BaseException: | ||
+ | __dict__ | ||
+ | args | ||
+ | message | ||
+ | |||
+ | class DacapoDryrun(exceptions.Exception) | ||
+ | |||
+ | Raised when text file does not end correctly | ||
+ | |||
+ | |||
+ | Method resolution order: | ||
+ | DacapoDryrun | ||
+ | exceptions.Exception | ||
+ | exceptions.BaseException | ||
+ | __builtin__.object | ||
+ | |||
+ | Data descriptors defined here: | ||
+ | __weakref__ | ||
+ | list of weak references to the object (if defined) | ||
+ | |||
+ | Methods inherited from exceptions.Exception: | ||
+ | __init__(...) | ||
+ | x.__init__(...) initializes x; | ||
+ | |||
+ | Data and other attributes inherited from exceptions.Exception: | ||
+ | __new__ = < | ||
+ | T.__new__(S, | ||
+ | |||
+ | Methods inherited from exceptions.BaseException: | ||
+ | __delattr__(...) | ||
+ | x.__delattr__(' | ||
+ | __getattribute__(...) | ||
+ | x.__getattribute__(' | ||
+ | __getitem__(...) | ||
+ | x.__getitem__(y) < | ||
+ | __getslice__(...) | ||
+ | x.__getslice__(i, | ||
+ | |||
+ | Use of negative indices is not supported. | ||
+ | __reduce__(...) | ||
+ | __repr__(...) | ||
+ | x.__repr__() < | ||
+ | __setattr__(...) | ||
+ | x.__setattr__(' | ||
+ | __setstate__(...) | ||
+ | __str__(...) | ||
+ | x.__str__() < | ||
+ | __unicode__(...) | ||
+ | |||
+ | Data descriptors inherited from exceptions.BaseException: | ||
+ | __dict__ | ||
+ | args | ||
+ | message | ||
+ | |||
+ | class DacapoInput(exceptions.Exception) | ||
+ | |||
+ | raised for bad input variables | ||
+ | |||
+ | |||
+ | Method resolution order: | ||
+ | DacapoInput | ||
+ | exceptions.Exception | ||
+ | exceptions.BaseException | ||
+ | __builtin__.object | ||
+ | |||
+ | Data descriptors defined here: | ||
+ | __weakref__ | ||
+ | list of weak references to the object (if defined) | ||
+ | |||
+ | Methods inherited from exceptions.Exception: | ||
+ | __init__(...) | ||
+ | x.__init__(...) initializes x; | ||
+ | |||
+ | Data and other attributes inherited from exceptions.Exception: | ||
+ | __new__ = < | ||
+ | T.__new__(S, | ||
+ | |||
+ | Methods inherited from exceptions.BaseException: | ||
+ | __delattr__(...) | ||
+ | x.__delattr__(' | ||
+ | __getattribute__(...) | ||
+ | x.__getattribute__(' | ||
+ | __getitem__(...) | ||
+ | x.__getitem__(y) < | ||
+ | __getslice__(...) | ||
+ | x.__getslice__(i, | ||
+ | |||
+ | Use of negative indices is not supported. | ||
+ | __reduce__(...) | ||
+ | __repr__(...) | ||
+ | x.__repr__() < | ||
+ | __setattr__(...) | ||
+ | x.__setattr__(' | ||
+ | __setstate__(...) | ||
+ | __str__(...) | ||
+ | x.__str__() < | ||
+ | __unicode__(...) | ||
+ | |||
+ | Data descriptors inherited from exceptions.BaseException: | ||
+ | __dict__ | ||
+ | args | ||
+ | message | ||
+ | |||
+ | class DacapoRunning(exceptions.Exception) | ||
+ | |||
+ | Raised when ncfile.status = ' | ||
+ | |||
+ | |||
+ | Method resolution order: | ||
+ | DacapoRunning | ||
+ | exceptions.Exception | ||
+ | exceptions.BaseException | ||
+ | __builtin__.object | ||
+ | |||
+ | Data descriptors defined here: | ||
+ | __weakref__ | ||
+ | list of weak references to the object (if defined) | ||
+ | |||
+ | Methods inherited from exceptions.Exception: | ||
+ | __init__(...) | ||
+ | x.__init__(...) initializes x; | ||
+ | |||
+ | Data and other attributes inherited from exceptions.Exception: | ||
+ | __new__ = < | ||
+ | T.__new__(S, | ||
+ | |||
+ | Methods inherited from exceptions.BaseException: | ||
+ | __delattr__(...) | ||
+ | x.__delattr__(' | ||
+ | __getattribute__(...) | ||
+ | x.__getattribute__(' | ||
+ | __getitem__(...) | ||
+ | x.__getitem__(y) < | ||
+ | __getslice__(...) | ||
+ | x.__getslice__(i, | ||
+ | |||
+ | Use of negative indices is not supported. | ||
+ | __reduce__(...) | ||
+ | __repr__(...) | ||
+ | x.__repr__() < | ||
+ | __setattr__(...) | ||
+ | x.__setattr__(' | ||
+ | __setstate__(...) | ||
+ | __str__(...) | ||
+ | x.__str__() < | ||
+ | __unicode__(...) | ||
+ | |||
+ | Data descriptors inherited from exceptions.BaseException: | ||
+ | __dict__ | ||
+ | args | ||
+ | message | ||
+ | |||
+ | class Jacapo | ||
+ | |||
+ | Python interface to the Fortran DACAPO code | ||
+ | |||
+ | |||
+ | Methods defined here: | ||
+ | __del__(self) | ||
+ | If calculator is deleted try to stop dacapo program | ||
+ | __init__(self, | ||
+ | Initialize the Jacapo calculator | ||
+ | |||
+ | : | ||
+ | |||
+ | nc : | ||
+ | output netcdf file, | ||
+ | |||
+ | outnc : | ||
+ | output file. by default equal to nc | ||
+ | |||
+ | deletenc : | ||
+ | determines whether the ncfile is deleted on initialization | ||
+ | so a fresh run occurs. If True, | ||
+ | it exists. | ||
+ | |||
+ | debug : | ||
+ | logging debug level. | ||
+ | |||
+ | Valid kwargs: | ||
+ | |||
+ | atoms : | ||
+ | atoms is an ase.Atoms object that will be attached | ||
+ | to this calculator. | ||
+ | |||
+ | pw : | ||
+ | sets planewave cutoff | ||
+ | |||
+ | dw : | ||
+ | sets density cutoff | ||
+ | |||
+ | kpts : | ||
+ | set chadi-cohen, | ||
+ | e.g. kpts = (2, | ||
+ | |||
+ | spinpol : | ||
+ | sets whether spin-polarization is used or not. | ||
+ | |||
+ | fixmagmom : | ||
+ | set the magnetic moment of the unit cell. only used | ||
+ | in spin polarize calculations | ||
+ | |||
+ | ft : | ||
+ | set the Fermi temperature used in occupation smearing | ||
+ | |||
+ | xc : | ||
+ | set the exchange-correlation functional. | ||
+ | one of [' | ||
+ | |||
+ | dipole | ||
+ | boolean | ||
+ | turn the dipole correction on (True) or off (False) | ||
+ | |||
+ | or: | ||
+ | dictionary of parameters to fine-tune behavior | ||
+ | {' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | |||
+ | nbands : | ||
+ | set the number of bands | ||
+ | |||
+ | symmetry : | ||
+ | Turn symmetry reduction on (True) or off (False) | ||
+ | |||
+ | stress : | ||
+ | Turn stress calculation on (True) or off (False) | ||
+ | |||
+ | debug : | ||
+ | could be something like | ||
+ | logging.DEBUG or an integer 0-50. The higher the integer, | ||
+ | the less information you see set debug level (0 = off, | ||
+ | extreme) | ||
+ | |||
+ | Modification of the nc file only occurs at calculate time if needed | ||
+ | |||
+ | >>> | ||
+ | |||
+ | reads the calculator from CO.nc if it exists or | ||
+ | minimally initializes CO.nc with dimensions if it does not exist. | ||
+ | |||
+ | >>> | ||
+ | |||
+ | reads the calculator from CO.nc or initializes it if | ||
+ | it does not exist and changes the planewave cutoff energy to | ||
+ | 300eV | ||
+ | |||
+ | >>> | ||
+ | |||
+ | returns the atoms in the netcdffile CO.nc, | ||
+ | attached to it. | ||
+ | |||
+ | >>> | ||
+ | __str__(self) | ||
+ | pretty-print the calculator and atoms. | ||
+ | |||
+ | we read everything directly from the ncfile to prevent | ||
+ | triggering any calculations | ||
+ | atoms_are_equal(self, | ||
+ | comparison of atoms to self.atoms using tolerances to account | ||
+ | for float/ | ||
+ | attach_child(self, | ||
+ | calculate(self) | ||
+ | run a calculation. | ||
+ | |||
+ | you have to be a little careful with code in here. Use the | ||
+ | calculation_required function to tell if a calculation is | ||
+ | required. It is assumed here that if you call this, | ||
+ | it. | ||
+ | calculation_required(self, | ||
+ | determines if a calculation is needed. | ||
+ | |||
+ | return True if a calculation is needed to get up to date data. | ||
+ | return False if no calculation is needed. | ||
+ | |||
+ | quantities is here because of the ase interface. | ||
+ | delete_ncattdimvar(self, | ||
+ | helper function to delete attributes, | ||
+ | dimensions and variables in a netcdffile | ||
+ | |||
+ | this functionality is not implemented for some reason in | ||
+ | netcdf, | ||
+ | attributes, | ||
+ | the ones you want to delete and then rename the new file. | ||
+ | |||
+ | if you delete a dimension, | ||
+ | are also deleted. | ||
+ | execute_external_dynamics(self, | ||
+ | Implementation of the stay alive functionality with socket | ||
+ | communication between dacapo and python. Known limitations: | ||
+ | It is not possible to start 2 independent Dacapo calculators | ||
+ | from the same python process, | ||
+ | identifier for the script[PID].py file. | ||
+ | execute_parent_calculation(self) | ||
+ | Implementation of an extra level of parallelization, | ||
+ | dacapo.run processes. This is used for NEBs parallelized over images. | ||
+ | get(self, *args) | ||
+ | get values for args. | ||
+ | |||
+ | e.g. calc.get(' | ||
+ | get_ados(self, | ||
+ | attempt at maintaining backward compatibility with get_ados | ||
+ | returning data | ||
+ | |||
+ | Now when we call calc.get_ados() it will return settings, | ||
+ | |||
+ | and calc.get_ados(atoms=[], | ||
+ | get_ados_data(self, | ||
+ | get atom projected data | ||
+ | |||
+ | : | ||
+ | |||
+ | atoms | ||
+ | list of atom indices (integers) | ||
+ | |||
+ | orbitals | ||
+ | list of strings | ||
+ | [' | ||
+ | [' | ||
+ | [' | ||
+ | |||
+ | cutoff : | ||
+ | cutoff radius you want the results for ' | ||
+ | |||
+ | spin | ||
+ | : | ||
+ | spin you want the results for | ||
+ | [0] or [1] or [0, | ||
+ | |||
+ | returns (egrid, | ||
+ | egrid has the fermi level at 0 eV | ||
+ | get_all_eigenvalues(self, | ||
+ | return all the eigenvalues at all the kpoints for a spin. | ||
+ | |||
+ | : | ||
+ | |||
+ | spin : | ||
+ | which spin the eigenvalues are for | ||
+ | get_ascii_debug(self) | ||
+ | Return the debug settings in Dacapo | ||
+ | get_atoms(self) | ||
+ | return the atoms attached to a calculator() | ||
+ | get_bz_k_points(self) | ||
+ | return list of kpoints in the Brillouin zone | ||
+ | get_calculate_stress(self) | ||
+ | return whether stress is calculated or not | ||
+ | get_cd = get_charge_density(self, | ||
+ | get_charge_density(self, | ||
+ | return x, | ||
+ | |||
+ | x, | ||
+ | cd is the charge density data | ||
+ | |||
+ | netcdf documentation:: | ||
+ | |||
+ | ChargeDensity(number_of_spin, | ||
+ | hardgrid_dim3, | ||
+ | hardgrid_dim2, | ||
+ | hardgrid_dim1) | ||
+ | ChargeDensity: | ||
+ | ChargeDensity: | ||
+ | get_charge_mixing(self) | ||
+ | return charge mixing parameters | ||
+ | get_convergence(self) | ||
+ | return convergence settings for Dacapo | ||
+ | get_debug(self) | ||
+ | Return the python logging level | ||
+ | get_decoupling(self) | ||
+ | return the electrostatic decoupling parameters | ||
+ | get_dipole(self) | ||
+ | return dictionary of parameters if the DipoleCorrection was used | ||
+ | get_dipole_moment(self, | ||
+ | return dipole moment of unit cell | ||
+ | |||
+ | Defined by the vector connecting the center of electron charge | ||
+ | density to the center of nuclear charge density. | ||
+ | |||
+ | Units = eV*angstrom | ||
+ | |||
+ | 1 Debye = 0.208194 eV*angstrom | ||
+ | get_dw(self) | ||
+ | return the density wave cutoff | ||
+ | get_ef = get_fermi_level(self) | ||
+ | get_effective_potential(self, | ||
+ | returns the realspace local effective potential for the spin. | ||
+ | the units of the potential are eV | ||
+ | |||
+ | : | ||
+ | |||
+ | spin : | ||
+ | specify which spin you want, | ||
+ | get_eigenvalues(self, | ||
+ | return the eigenvalues for a kpt and spin | ||
+ | |||
+ | : | ||
+ | |||
+ | kpt : | ||
+ | index of the IBZ kpoint | ||
+ | |||
+ | spin : | ||
+ | which spin the eigenvalues are for | ||
+ | get_electronic_minimization(self) | ||
+ | get method and diagonalizations per band for electronic | ||
+ | minimization algorithms | ||
+ | get_electronic_temperature = get_ft(self) | ||
+ | get_electrostatic_potential(self, | ||
+ | get electrostatic potential | ||
+ | |||
+ | Netcdf documentation:: | ||
+ | |||
+ | double ElectrostaticPotential(number_of_spin, | ||
+ | hardgrid_dim3, | ||
+ | hardgrid_dim2, | ||
+ | hardgrid_dim1) ; | ||
+ | ElectrostaticPotential: | ||
+ | Description = " | ||
+ | unit = " | ||
+ | get_ensemble_coefficients(self) | ||
+ | returns exchange correlation ensemble coefficients | ||
+ | get_esp = get_electrostatic_potential(self, | ||
+ | get_external_dipole(self) | ||
+ | return the External dipole settings | ||
+ | get_extpot(self) | ||
+ | return the external potential set in teh calculator | ||
+ | get_extracharge(self) | ||
+ | Return the extra charge set in teh calculator | ||
+ | get_fermi_level(self) | ||
+ | return Fermi level | ||
+ | get_fftgrid(self) | ||
+ | return soft and hard fft grids | ||
+ | get_fixmagmom(self) | ||
+ | returns the value of FixedMagneticMoment | ||
+ | get_forces(self, | ||
+ | Calculate atomic forces | ||
+ | get_ft(self) | ||
+ | return the FermiTemperature used in the calculation | ||
+ | get_ibz_k_points = get_ibz_kpoints(self) | ||
+ | get_ibz_kpoints(self) | ||
+ | return list of kpoints in the irreducible brillouin zone | ||
+ | get_k_point_weights(self) | ||
+ | return the weights on the IBZ kpoints | ||
+ | get_kpts(self) | ||
+ | return the BZ kpts | ||
+ | get_kpts_type(self) | ||
+ | return the kpt grid type | ||
+ | get_magnetic_moment(self, | ||
+ | calculates the magnetic moment (Bohr-magnetons) of the supercell | ||
+ | get_magnetic_moments(self, | ||
+ | return magnetic moments on each atom after the calculation is | ||
+ | run | ||
+ | get_mdos(self) | ||
+ | return multicentered projected dos parameters | ||
+ | get_mdos_data(self, | ||
+ | returns data from multicentered projection | ||
+ | |||
+ | |||
+ | returns (mdos, | ||
+ | |||
+ | the rotation matrices are retrieved from the text file. I am | ||
+ | not sure what you would do with these, | ||
+ | about them in the old documentation so I put the code to | ||
+ | retrieve them here. the syntax for the return value is: | ||
+ | rotmat[atom# | ||
+ | center on the atom# | ||
+ | label refers to. | ||
+ | get_nbands(self) | ||
+ | return the number of bands used in the calculation | ||
+ | get_nc(self) | ||
+ | return the ncfile used for output | ||
+ | get_ncoutput(self) | ||
+ | returns the control variables for the ncfile | ||
+ | get_number_of_bands = get_nbands(self) | ||
+ | get_number_of_electrons = get_valence(self, | ||
+ | get_number_of_grid_points(self) | ||
+ | return soft fft grid | ||
+ | get_number_of_iterations(self) | ||
+ | get_number_of_spins(self) | ||
+ | if spin-polarized returns 2, | ||
+ | get_occ = get_occupation_numbers(self, | ||
+ | get_occupation_numbers(self, | ||
+ | return occupancies of eigenstates for a kpt and spin | ||
+ | |||
+ | : | ||
+ | |||
+ | kpt : | ||
+ | index of the IBZ kpoint you want the occupation of | ||
+ | |||
+ | spin : | ||
+ | 0 or 1 | ||
+ | get_occupationstatistics(self) | ||
+ | return occupation statistics method | ||
+ | get_potential_energy(self, | ||
+ | return the potential energy. | ||
+ | get_pseudo_wave_function(self, | ||
+ | return the pseudo wavefunction | ||
+ | get_pseudopotentials(self) | ||
+ | get pseudopotentials set for atoms attached to calculator | ||
+ | get_psp(self, | ||
+ | get the pseudopotential filename from the psp database | ||
+ | |||
+ | : | ||
+ | |||
+ | sym : | ||
+ | the chemical symbol of the species | ||
+ | |||
+ | z : | ||
+ | the atomic number of the species | ||
+ | |||
+ | |||
+ | you can only specify sym or z. Returns the pseudopotential | ||
+ | filename, | ||
+ | get_psp_nuclear_charge(self, | ||
+ | get the nuclear charge of the atom from teh psp-file. | ||
+ | |||
+ | This is not the same as the atomic number, | ||
+ | necessarily the negative of the number of valence electrons, | ||
+ | since a psp may be an ion. this function is needed to compute | ||
+ | centers of ion charge for the dipole moment calculation. | ||
+ | |||
+ | We read in the valence ion configuration from the psp file and | ||
+ | add up the charges in each shell. | ||
+ | get_psp_valence(self, | ||
+ | get the psp valence charge on an atom from the pspfile. | ||
+ | get_pw(self) | ||
+ | return the planewave cutoff used | ||
+ | get_reciprocal_bloch_function(self, | ||
+ | return the reciprocal bloch function. Need for Jacapo | ||
+ | Wannier class. | ||
+ | get_reciprocal_fft_index(self, | ||
+ | return the Wave Function FFT Index | ||
+ | get_scratch(self) | ||
+ | finds an appropriate scratch directory for the calculation | ||
+ | get_spin_polarized(self) | ||
+ | Return True if calculate is spin-polarized or False if not | ||
+ | get_spinpol(self) | ||
+ | Returns the spin polarization setting, | ||
+ | get_status(self) | ||
+ | get status of calculation from ncfile. usually one of: | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | None | ||
+ | get_stay_alive(self) | ||
+ | return the stay alive settings | ||
+ | get_stress(self, | ||
+ | get stress on the atoms. | ||
+ | |||
+ | you should have set up the calculation | ||
+ | to calculate stress first. | ||
+ | |||
+ | returns [sxx, | ||
+ | get_symmetry(self) | ||
+ | return the type of symmetry used | ||
+ | get_txt(self) | ||
+ | return the txt file used for output | ||
+ | get_ucgrid(self, | ||
+ | Return X, | ||
+ | |||
+ | dims = (n0, | ||
+ | |||
+ | n0 points along unitcell vector 0 | ||
+ | n1 points along unitcell vector 1 | ||
+ | n2 points along unitcell vector 2 | ||
+ | get_valence(self, | ||
+ | return the total number of valence electrons for the | ||
+ | atoms. valence electrons are read directly from the | ||
+ | pseudopotentials. | ||
+ | |||
+ | the psp filenames are stored in the ncfile. They may be just | ||
+ | the name of the file, | ||
+ | same directory as the ncfile, | ||
+ | may be defined by an absolute or relative path. This function | ||
+ | deals with all these possibilities. | ||
+ | get_wannier_localization_matrix(self, | ||
+ | return wannier localization matrix | ||
+ | get_wave_function(self, | ||
+ | return the wave function. This is the pseudo wave function | ||
+ | divided by volume. | ||
+ | get_wf = get_wave_function(self, | ||
+ | get_xc(self) | ||
+ | return the self-consistent exchange-correlation functional used | ||
+ | |||
+ | returns a string | ||
+ | get_xc_energies(self, | ||
+ | Get energies for different functionals self-consistent and | ||
+ | non-self-consistent. | ||
+ | |||
+ | : | ||
+ | |||
+ | functional : | ||
+ | some set of ' | ||
+ | |||
+ | This function returns the self-consistent energy and/ | ||
+ | energies associated with various functionals. | ||
+ | The functionals are currently PZ, | ||
+ | The different energies may be useful for calculating improved | ||
+ | adsorption energies as in B. Hammer, | ||
+ | J.K. Norskov, | ||
+ | Examples: | ||
+ | get_xcenergies() # | ||
+ | get_xcenergies(' | ||
+ | get_xcenergies(' | ||
+ | # | ||
+ | initial_wannier(self, | ||
+ | return initial wannier | ||
+ | initnc(self, | ||
+ | create an ncfile with minimal dimensions in it | ||
+ | |||
+ | this makes sure the dimensions needed for other set functions | ||
+ | exist when needed. | ||
+ | read_only_atoms(self, | ||
+ | read only the atoms from an existing netcdf file. Used to | ||
+ | initialize a calculator from a ncfilename. | ||
+ | |||
+ | : | ||
+ | |||
+ | ncfile : | ||
+ | name of file to read from. | ||
+ | |||
+ | return ASE.Atoms with no calculator attached or None if no | ||
+ | atoms found | ||
+ | restart(self) | ||
+ | Restart the calculator by deleting nc dimensions that will | ||
+ | be rewritten on the next calculation. This is sometimes required | ||
+ | when certain dimensions change related to unitcell size changes | ||
+ | planewave/ | ||
+ | fortran netcdf errors if the data does not match the pre-defined | ||
+ | dimension sizes. | ||
+ | |||
+ | also delete all the output from previous calculation. | ||
+ | set(self, **kwargs) | ||
+ | set a parameter | ||
+ | |||
+ | parameter is stored in dictionary that is processed later if a | ||
+ | calculation is need. | ||
+ | set_ados(self, | ||
+ | setup calculation of atom-projected density of states | ||
+ | |||
+ | : | ||
+ | |||
+ | energywindow : | ||
+ | sets (emin, | ||
+ | |||
+ | energywidth : | ||
+ | the gaussian used in smearing | ||
+ | |||
+ | npoints : | ||
+ | the number of points to sample the DOS at | ||
+ | |||
+ | cutoff : | ||
+ | the cutoff radius in angstroms for the integration. | ||
+ | set_ascii_debug(self, | ||
+ | set the debug level for Dacapo | ||
+ | |||
+ | : | ||
+ | |||
+ | level : | ||
+ | one of ' | ||
+ | set_atoms(self, | ||
+ | attach an atoms to the calculator and update the ncfile | ||
+ | |||
+ | : | ||
+ | |||
+ | atoms | ||
+ | ASE.Atoms instance | ||
+ | set_calculate_stress(self, | ||
+ | Turn on stress calculation | ||
+ | |||
+ | : | ||
+ | |||
+ | stress : | ||
+ | set_calculate_stress(True) calculates stress | ||
+ | set_calculate_stress(False) do not calculate stress | ||
+ | set_charge_mixing(self, | ||
+ | set density mixing method and parameters | ||
+ | |||
+ | : | ||
+ | |||
+ | method : | ||
+ | ' | ||
+ | |||
+ | mixinghistory : | ||
+ | number of iterations to mix | ||
+ | Number of charge residual vectors stored for generating | ||
+ | the Pulay estimate on the self-consistent charge density, | ||
+ | see Sec. 4.2 in Kresse/ | ||
+ | Comp. Mat. Sci. 6 (1996) p34ff | ||
+ | |||
+ | mixingcoeff : | ||
+ | Mixing coefficient for Pulay charge mixing, | ||
+ | to A in G$^1$ in Sec. 4.2 in Kresse/ | ||
+ | Comp. Mat. Sci. 6 (1996) p34ff | ||
+ | |||
+ | precondition : | ||
+ | ' | ||
+ | |||
+ | * " | ||
+ | i.e. q$_0$ is different from zero, | ||
+ | in Kresse/ | ||
+ | The value of q$_0$ is fix to give a damping of 20 | ||
+ | of the lowest q vector. | ||
+ | |||
+ | * " | ||
+ | |||
+ | updatecharge : | ||
+ | ' | ||
+ | |||
+ | * " | ||
+ | ChargeMixing: | ||
+ | |||
+ | * " | ||
+ | This setting is useful when evaluating the Harris-Foulkes | ||
+ | density functional | ||
+ | set_convergence(self, | ||
+ | set convergence criteria for stopping the dacapo calculator. | ||
+ | |||
+ | : | ||
+ | |||
+ | energy : | ||
+ | set total energy change (eV) required for stopping | ||
+ | |||
+ | density : | ||
+ | set density change required for stopping | ||
+ | |||
+ | occupation : | ||
+ | set occupation change required for stopping | ||
+ | |||
+ | maxsteps : | ||
+ | specify maximum number of steps to take | ||
+ | |||
+ | maxtime : | ||
+ | specify maximum number of hours to run. | ||
+ | |||
+ | Autopilot not supported here. | ||
+ | set_debug(self, | ||
+ | set debug level for python logging | ||
+ | |||
+ | debug should be an integer from 0-100 or one of the logging | ||
+ | constants like logging.DEBUG, | ||
+ | set_decoupling(self, | ||
+ | Decoupling activates the three dimensional electrostatic | ||
+ | decoupling. Based on paper by Peter E. Bloechl: | ||
+ | page7422 (1995). | ||
+ | |||
+ | : | ||
+ | |||
+ | ngaussians : | ||
+ | The number of gaussian functions per atom | ||
+ | used for constructing the model charge of the system | ||
+ | |||
+ | ecutoff : | ||
+ | The cut off energy (eV) of system charge density in | ||
+ | g-space used when mapping constructing the model change of | ||
+ | the system, | ||
+ | ECutoff enters when constructing the model change. | ||
+ | |||
+ | gausswidth : | ||
+ | The width of the Gaussians defined by | ||
+ | $widthofgaussian*1.5^(n-1)$ $n$=(1 to numberofgaussians) | ||
+ | set_dipole(self, | ||
+ | turn on and set dipole correction scheme | ||
+ | |||
+ | : | ||
+ | |||
+ | status : | ||
+ | True turns dipole on. False turns Dipole off | ||
+ | |||
+ | mixpar : | ||
+ | Mixing Parameter for the the dipole correction field | ||
+ | during the electronic minimization process. If instabilities | ||
+ | occur during electronic minimization, | ||
+ | decreased. | ||
+ | |||
+ | initval : | ||
+ | initial value to start at | ||
+ | |||
+ | adddipfield : | ||
+ | additional dipole field to add | ||
+ | units : | ||
+ | External additive, | ||
+ | third unit cell vector, | ||
+ | dipole layer. The field discontinuity follows the position | ||
+ | of the dynamical dipole correction, | ||
+ | DipoleCorrection: | ||
+ | discontinuity is at this value, | ||
+ | vacuum position farthest from any other atoms on both | ||
+ | sides of the slab. | ||
+ | |||
+ | position : | ||
+ | scaled coordinates along third unit cell direction. | ||
+ | If this attribute is set, | ||
+ | compensation dipole layer plane in at the provided value. | ||
+ | If this attribute is not set, | ||
+ | dipole layer plane in the vacuum position farthest from any | ||
+ | other atoms on both sides of the slab. Do not set this to | ||
+ | 0.0 | ||
+ | |||
+ | |||
+ | calling set_dipole() sets all default values. | ||
+ | set_dw(self, | ||
+ | set the density wave cutoff energy. | ||
+ | |||
+ | : | ||
+ | |||
+ | dw : | ||
+ | the density wave cutoff | ||
+ | |||
+ | The function checks to make sure it is not less than the | ||
+ | planewave cutoff. | ||
+ | |||
+ | Density_WaveCutoff describes the kinetic energy neccesary to | ||
+ | represent a wavefunction associated with the total density, | ||
+ | i.e. G-vectors for which $ert Gert^2$ $< | ||
+ | 4*Density_WaveCutoff will be used to describe the total | ||
+ | density (including augmentation charge and partial core | ||
+ | density). If Density_WaveCutoff is equal to PlaneWaveCutoff | ||
+ | this implies that the total density is as soft as the | ||
+ | wavefunctions described by the kinetic energy cutoff | ||
+ | PlaneWaveCutoff. If a value of Density_WaveCutoff is specified | ||
+ | (must be larger than or equal to PlaneWaveCutoff) the program | ||
+ | will run using two grids, | ||
+ | wavefunction density (softgrid_dim) and one representing the | ||
+ | total density (hardgrid_dim). If the density can be | ||
+ | reprensented on the same grid as the wavefunction density | ||
+ | Density_WaveCutoff can be chosen equal to PlaneWaveCutoff | ||
+ | (default). | ||
+ | set_electronic_minimization(self, | ||
+ | set the eigensolver method | ||
+ | |||
+ | Selector for which subroutine to use for electronic | ||
+ | minimization | ||
+ | |||
+ | Recognized options : | ||
+ | |||
+ | * " | ||
+ | k-point parallization. | ||
+ | |||
+ | * " | ||
+ | (Claus Bendtsen et al). | ||
+ | |||
+ | * " | ||
+ | method (RMM), | ||
+ | subspace) The implementaion follows closely the algorithm | ||
+ | outlined in Kresse and Furthmuller, | ||
+ | |||
+ | : | ||
+ | |||
+ | method : | ||
+ | should be ' | ||
+ | |||
+ | diagsperband : | ||
+ | The number of diagonalizations per band for | ||
+ | electronic minimization algorithms (maps onto internal | ||
+ | variable ndiapb). Applies for both | ||
+ | ElectronicMinimization: | ||
+ | default value = 2 | ||
+ | set_external_dipole(self, | ||
+ | Externally imposed dipole potential. This option overwrites | ||
+ | DipoleCorrection if set. | ||
+ | |||
+ | : | ||
+ | |||
+ | value : | ||
+ | units of volts | ||
+ | |||
+ | position : | ||
+ | scaled coordinates along third unit cell direction. | ||
+ | if None, | ||
+ | vacuum position farthest from any other atoms on both | ||
+ | sides of the slab. Do not set to 0.0. | ||
+ | set_extpot(self, | ||
+ | add external potential of value | ||
+ | |||
+ | see this link before using this | ||
+ | https:// | ||
+ | |||
+ | : | ||
+ | |||
+ | potgrid : | ||
+ | the shape must be the same as the fft soft grid | ||
+ | the value of the potential to add | ||
+ | |||
+ | |||
+ | you have to know both of the fft grid dimensions ahead of time! | ||
+ | if you know what you are doing, | ||
+ | before hand with: | ||
+ | calc.set_fftgrid((n1, | ||
+ | set_extracharge(self, | ||
+ | add extra charge to unit cell | ||
+ | |||
+ | : | ||
+ | |||
+ | val : | ||
+ | extra electrons to add or subtract from the unit cell | ||
+ | |||
+ | Fixed extra charge in the unit cell (i.e. deviation from | ||
+ | charge neutrality). This assumes a compensating, | ||
+ | constant backgound charge (jellium) to forge overall charge | ||
+ | neutrality. | ||
+ | set_fftgrid(self, | ||
+ | sets the dimensions of the FFT grid to be used | ||
+ | |||
+ | : | ||
+ | |||
+ | soft : | ||
+ | make a n1 x n2 x n3 grid | ||
+ | |||
+ | hard : | ||
+ | make a n1 x n2 x n3 grid | ||
+ | |||
+ | |||
+ | >>> | ||
+ | sets the soft and hard grid dimensions to 42, | ||
+ | |||
+ | >>> | ||
+ | sets the soft grid dimensions to 42, | ||
+ | grid dimensions to 80, | ||
+ | |||
+ | These are the fast FFt grid numbers listed in fftdimensions.F | ||
+ | |||
+ | data list_of_fft / | ||
+ | 22, | ||
+ | 56, | ||
+ | 96, | ||
+ | 160, | ||
+ | 216, | ||
+ | 450, | ||
+ | |||
+ | otherwise you will get some errors from mis-dimensioned variables. | ||
+ | |||
+ | this is usually automatically set by Dacapo. | ||
+ | set_fixmagmom(self, | ||
+ | set a fixed magnetic moment for a spin polarized calculation | ||
+ | |||
+ | : | ||
+ | |||
+ | fixmagmom : | ||
+ | the magnetic moment of the cell in Bohr magnetons | ||
+ | set_ft(self, | ||
+ | set the Fermi temperature for occupation smearing | ||
+ | |||
+ | : | ||
+ | |||
+ | ft : | ||
+ | Fermi temperature in kT (eV) | ||
+ | |||
+ | Electronic temperature, | ||
+ | statistics. Device used to stabilize the convergence towards | ||
+ | the electronic ground state. Higher values stabilizes the | ||
+ | convergence. Values in the range 0.1-1.0 eV are recommended, | ||
+ | depending on the complexity of the Fermi surface (low values | ||
+ | for d-metals and narrow gap semiconducters, | ||
+ | electron-like metals). | ||
+ | set_kpts(self, | ||
+ | set the kpt grid. | ||
+ | |||
+ | Parameters: | ||
+ | |||
+ | kpts: | ||
+ | chadi-cohen sets: | ||
+ | |||
+ | * cc6_1x1 | ||
+ | * cc12_2x3 | ||
+ | * cc18_sq3xsq3 | ||
+ | * cc18_1x1 | ||
+ | * cc54_sq3xsq3 | ||
+ | * cc54_1x1 | ||
+ | * cc162_sq3xsq3 | ||
+ | * cc162_1x1 | ||
+ | |||
+ | (n1, | ||
+ | [k1, | ||
+ | defined in k1, | ||
+ | |||
+ | There is also a possibility to have Dacapo (fortran) create | ||
+ | the Kpoints in chadi-cohen or monkhorst-pack form. To do this | ||
+ | you need to set the KpointSetup.gridtype attribute, | ||
+ | KpointSetup. | ||
+ | |||
+ | KpointSetup = [3, | ||
+ | KpointSetup.gridtype = ' | ||
+ | |||
+ | KpointSetup(1) Chadi-Cohen k-point set | ||
+ | 1 6 k-points 1x1 | ||
+ | 2 18-kpoints sqrt(3)*sqrt(3) | ||
+ | 3 18-kpoints 1x1 | ||
+ | 4 54-kpoints sqrt(3)*sqrt(3) | ||
+ | 5 54-kpoints 1x1 | ||
+ | 6 162-kpoints 1x1 | ||
+ | 7 12-kpoints 2x3 | ||
+ | 8 162-kpoints 3xsqrt 3 | ||
+ | |||
+ | or | ||
+ | KpointSetup = [4, | ||
+ | KpointSetup.gridtype = ' | ||
+ | we do not use this functionality. | ||
+ | set_mdos(self, | ||
+ | Setup multicentered projected DOS. | ||
+ | |||
+ | mcenters | ||
+ | a list of tuples containing (atom#, | ||
+ | (0, | ||
+ | on atom 0 | ||
+ | |||
+ | (1, | ||
+ | with m = +1 on atom 0 | ||
+ | |||
+ | l=0 s-orbital | ||
+ | l=1 p-orbital | ||
+ | l=2 d-orbital | ||
+ | |||
+ | m in range of ( -l ... 0 ... +l ) | ||
+ | |||
+ | The direction cosines for which the spherical harmonics are | ||
+ | set up are using the next different atom in the list | ||
+ | (cyclic) as direction pointer, | ||
+ | along the direction to this next atom. At the moment the | ||
+ | rotation matrices is only given in the text file, | ||
+ | use grep' | ||
+ | |||
+ | adapated from old MultiCenterProjectedDOS.py | ||
+ | set_nbands(self, | ||
+ | Set the number of bands. a few unoccupied bands are | ||
+ | recommended. | ||
+ | |||
+ | : | ||
+ | |||
+ | nbands : | ||
+ | the number of bands. | ||
+ | |||
+ | if nbands = None the function returns with nothing done. At | ||
+ | calculate time, | ||
+ | by: | ||
+ | |||
+ | the number of bands is calculated as | ||
+ | $nbands=nvalence*0.65 + 4$ | ||
+ | set_nc(self, | ||
+ | set filename for the netcdf and text output for this calculation | ||
+ | |||
+ | : | ||
+ | |||
+ | nc : | ||
+ | filename for netcdf file | ||
+ | |||
+ | if the ncfile attached to the calculator is changing, | ||
+ | file will be copied to the new file if it doesn not exist so | ||
+ | that all the calculator details are preserved. Otherwise, | ||
+ | |||
+ | if the ncfile does not exist, | ||
+ | |||
+ | the text file will have the same basename as the ncfile, | ||
+ | with a .txt extension. | ||
+ | set_ncoutput(self, | ||
+ | set the output of large variables in the netcdf output file | ||
+ | |||
+ | : | ||
+ | |||
+ | wf : | ||
+ | controls output of wavefunction. values can | ||
+ | be ' | ||
+ | |||
+ | cd : | ||
+ | controls output of charge density. values can | ||
+ | be ' | ||
+ | |||
+ | efp : | ||
+ | controls output of effective potential. values can | ||
+ | be ' | ||
+ | |||
+ | esp : | ||
+ | controls output of electrostatic potential. values can | ||
+ | be ' | ||
+ | set_occupationstatistics(self, | ||
+ | set the method used for smearing the occupations. | ||
+ | |||
+ | : | ||
+ | |||
+ | method : | ||
+ | one of ' | ||
+ | Currently, | ||
+ | is implemented to 1th order (which is recommemded by most authors). | ||
+ | ' | ||
+ | set_parent(self, | ||
+ | set_pseudopotentials(self, | ||
+ | Set all the pseudopotentials from a dictionary. | ||
+ | |||
+ | The dictionary should have this form:: | ||
+ | |||
+ | {symbol1: | ||
+ | symbol2: | ||
+ | set_psp(self, | ||
+ | set the pseudopotential file for a species or an atomic number. | ||
+ | |||
+ | : | ||
+ | |||
+ | sym : | ||
+ | chemical symbol of the species | ||
+ | |||
+ | z : | ||
+ | the atomic number of the species | ||
+ | |||
+ | psp : | ||
+ | filename of the pseudopotential | ||
+ | |||
+ | |||
+ | you can only set sym or z. | ||
+ | |||
+ | examples:: | ||
+ | |||
+ | set_psp(' | ||
+ | set_psp(z=6, | ||
+ | set_psp_database(self, | ||
+ | get the xc-dependent psp database | ||
+ | |||
+ | : | ||
+ | |||
+ | xc : | ||
+ | one of ' | ||
+ | |||
+ | |||
+ | not all the databases are complete, | ||
+ | some psp do not exist. | ||
+ | |||
+ | note: | ||
+ | imported now. Changing the xc at this point results in loading | ||
+ | a nearly empty database, | ||
+ | resolve that | ||
+ | set_pw(self, | ||
+ | set the planewave cutoff. | ||
+ | |||
+ | : | ||
+ | |||
+ | pw : | ||
+ | the planewave cutoff in eV | ||
+ | |||
+ | this function checks to make sure the density wave cutoff is | ||
+ | greater than or equal to the planewave cutoff. | ||
+ | set_spinpol(self, | ||
+ | set Spin polarization. | ||
+ | |||
+ | : | ||
+ | |||
+ | spinpol : | ||
+ | set_spinpol(True) spin-polarized. | ||
+ | set_spinpol(False) no spin polarization, | ||
+ | |||
+ | Specify whether to perform a spin polarized or unpolarized | ||
+ | calculation. | ||
+ | set_status(self, | ||
+ | set the status flag in the netcdf file | ||
+ | |||
+ | : | ||
+ | |||
+ | status : | ||
+ | status flag, | ||
+ | set_stay_alive(self, | ||
+ | set the stay alive setting | ||
+ | set_symmetry(self, | ||
+ | set how symmetry is used to reduce k-points | ||
+ | |||
+ | : | ||
+ | |||
+ | val : | ||
+ | set_sym(True) Maximum symmetry is used | ||
+ | set_sym(False) No symmetry is used | ||
+ | |||
+ | This variable controls the if and how DACAPO should attempt | ||
+ | using symmetry in the calculation. Imposing symmetry generally | ||
+ | speeds up the calculation and reduces numerical noise to some | ||
+ | extent. Symmetry should always be applied to the maximum | ||
+ | extent, | ||
+ | the symmetry of the equilibrium state may be lower than the | ||
+ | initial state. Such an equilibrium state with lower symmetry | ||
+ | is missed, | ||
+ | algorithms for ionic propagation will generally not break the | ||
+ | symmetry of the initial state, | ||
+ | BFGS may break the symmetry of the initial state. Recognized | ||
+ | options: | ||
+ | |||
+ | " | ||
+ | symmetry in recipical space. This is utilized to reduce the | ||
+ | k-point sampling set for Brillouin zone integration and has no | ||
+ | influence on the ionic forces/ | ||
+ | |||
+ | " | ||
+ | atomic structure and extract the highest possible symmetry | ||
+ | group. During the calculation, | ||
+ | spatial symmetry on ionic forces and electronic structure, | ||
+ | i.e. the symmetry will be conserved during the calculation. | ||
+ | set_xc(self, | ||
+ | Set the self-consistent exchange-correlation functional | ||
+ | |||
+ | : | ||
+ | |||
+ | xc : | ||
+ | Must be one of ' | ||
+ | |||
+ | Selects which density functional to use for | ||
+ | exchange-correlation when performing electronic minimization | ||
+ | (the electronic energy is minimized with respect to this | ||
+ | selected functional) Notice that the electronic energy is also | ||
+ | evaluated non-selfconsistently by DACAPO for other | ||
+ | exchange-correlation functionals Recognized options : | ||
+ | |||
+ | * " | ||
+ | * " | ||
+ | * " | ||
+ | * " | ||
+ | * " | ||
+ | * " | ||
+ | |||
+ | option " | ||
+ | calculation; | ||
+ | strip(self) | ||
+ | remove all large memory nc variables not needed for | ||
+ | anything I use very often. | ||
+ | update_input_parameters(self) | ||
+ | read in all the input parameters from the netcdfile | ||
+ | write(self, new=False) | ||
+ | write out everything to the ncfile : | ||
+ | |||
+ | new determines whether to delete any existing ncfile, | ||
+ | write_input(self) | ||
+ | write out input parameters as needed | ||
+ | |||
+ | you must define a self._set_keyword function that does all the | ||
+ | actual writing. | ||
+ | write_nc(self, | ||
+ | write out atoms to a netcdffile. | ||
+ | |||
+ | This does not write out the calculation parameters! | ||
+ | |||
+ | : | ||
+ | |||
+ | nc : | ||
+ | ncfilename to write to. this file will get clobbered | ||
+ | if it already exists. | ||
+ | |||
+ | atoms : | ||
+ | atoms to write. if None use the attached atoms | ||
+ | if no atoms are attached only the calculator is | ||
+ | written out. | ||
+ | |||
+ | the ncfile is always opened in ' | ||
+ | |||
+ | note: | ||
+ | sure that the geometry you mean gets written! Otherwise, | ||
+ | atoms in the calculator is used, | ||
+ | the external copy of the atoms. | ||
+ | |||
+ | Static methods defined here: | ||
+ | read_atoms(filename) | ||
+ | read atoms and calculator from an existing netcdf file. | ||
+ | |||
+ | : | ||
+ | |||
+ | filename : | ||
+ | name of file to read from. | ||
+ | |||
+ | static method | ||
+ | |||
+ | example:: | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | |||
+ | this method is here for legacy purposes. I used to use it alot. | ||
+ | |||
+ | Data and other attributes defined here: | ||
+ | __version__ = ' | ||
+ | default_input = {' | ||
+ | |||
+ | Functions | ||
+ | |||
+ | |||
+ | read(ncfile) | ||
+ | return atoms and calculator from ncfile | ||
+ | |||
+ | >>> | ||
+ | |||
+ | Data | ||
+ | |||
+ | |||
+ | __docformat__ = ' | ||
+ | formatstring = ' | ||
+ | formatter = < | ||
+ | handler = < | ||
+ | log = < | ||
+ | |||
+ | </ |
seminar/jacapo_object.txt · 最終更新: 2022/08/23 13:34 by 127.0.0.1