package TranSIESTA @ISA = qw() sub KListDBDir my $this = shift; return $this->{'KListDBDir'} if($this->{'KListDBDir'}); return $this->{'KListDBDir'} = $KListDBDir; sub SetKListDBDir my($this, $d) = return $d; sub new my ($module) = @_; return $this; sub DESTROY my $this = shift; sub CheckFileType my ($path) = @_; return undef unless($in); return "ATK 2.0 Output"; return undef; sub ReadForceConvergenceFromATK2Output my ($this, $path, $target) = @_; return undef; return $path; sub ReadEnergyConvergenceFromATK2Output my ($this, $path, $target) = @_; return undef; return $path; sub ReadBandFromATK2Output my ($this, $path) = @_; return undef; return $path; sub ReadFiles my ($this, $filename, $target) = @_; return undef unless($FileType); return $this->ReadEnergyConvergenceFromATK2Output($filename); return $this->ReadForceConvergenceFromATK2Output($filename); return $this->ReadBandFromATK2Output($filename); return undef; sub SetSampleName my ($this, $name) = @_; return $this->{'SampleName'} = $name; sub SampleName my ($this) = @_; return $this->{'SampleName'}; sub IsCrystalATKFile my ($this, $filename) = @_; return undef unless($in); return 1; return 0; sub IsTwoProbeATKFile my ($this, $filename) = @_; return undef unless($in); return 1; return 0; sub ReadATKFile my ($this, $filename, $ElectrodeSpacing, $IsPrint) = @_; return -1; sub ReadTwoProbeATKFile my ($this, $filename, $ElectrodeSpacing, $IsPrint) = @_; return undef unless($in); return ($crystal, $LCrystal, $RCrystal); sub ReadElectrodeATKFile my ($this, $filename, $IsPrint) = @_; return undef unless($in); return $crystal; sub ReadCrystalATKFile my ($this, $filename, $IsPrint) = @_; return undef unless($in); return $crystal; sub SaveTranSIESTAATKFile my ($this, $Crystal, $filename, $Function, $BasisSet, $Version, $XCFunctional, $InitialSpin, $IsChooseRandomly) = @_; return; return ($KListFilePath, $filename);