def __init__( self, species, temp, radius=-1, density=-1, charge=0, units_temp="ha", units_radius="bohr", units_density="g/cm3", write_info=True, ): # print the initial spiel print("\n" + "Welcome to AvAtom! \n") # input variables are checked later with getter / setter functions self.species = species self.units_temp = units_temp self.temp = temp self.charge = charge self.units_radius = units_radius self.units_density = units_density # radius and density need a special check to ensure compatibility radius_check, density_check = check_inputs.Atom().check_rad_dens_init( self, radius, density, self.units_radius, self.units_density, ) self.radius = radius_check self.density = density_check if write_info: print(self.info)
def density(self, density): self._density = check_inputs.Atom().check_density( density, self.units_density) self._radius = check_inputs.Atom().dens_to_radius(self, self._density) config.r_s = self._radius config.sph_vol = (4.0 * pi * self._radius**3.0) / 3.0
def units_density(self, units_density): self._units_density = check_inputs.Atom().check_units_density( units_density)
def radius(self, radius): self._radius = check_inputs.Atom().check_radius( radius, self.units_radius) self._density = check_inputs.Atom().radius_to_dens(self, self._radius) config.r_s = self._radius config.sph_vol = (4.0 * pi * self._radius**3.0) / 3.0
def units_radius(self, units_radius): self._units_radius = check_inputs.Atom().check_units_radius( units_radius)
def charge(self, charge): self._charge = check_inputs.Atom().check_charge(charge)
def temp(self, temp): self._temp = check_inputs.Atom().check_temp(temp, self.units_temp) config.temp = self._temp config.beta = 1.0 / self._temp
def units_temp(self, units_temp): self._units_temp = check_inputs.Atom().check_units_temp(units_temp)
def species(self, species): self._species = check_inputs.Atom().check_species(species)