package WIEN2k @ISA = qw() sub GetStructFile return Deps::ReplaceExtension($_[0], ".struct"); sub GetSCFFile return Deps::ReplaceExtension($_[0], ".scf"); sub GetOutput2File return Deps::ReplaceExtension($_[0], ".output2"); sub GetINSPFile return Deps::ReplaceExtension($_[0], ".insp"); sub ClearAll sub ClearAll { my $this= sub FileType return shift->{'FileType'}; sub FileName return shift->{'FileName'}; sub SetFileName sub SetFileName { my ($this,$f)= return $this->{'FileName'} = $f; return shift->{'DataArray'}; my ($this, $da) = @_; return $this->{'DataArray'} = $da; sub new my ($module) = @_; return $this; sub DESTROY my $this = shift; sub CheckFileType my ($path) = @_; return "WIEN2k epsilon file"; return "WIEN2k spaghetti Band file"; return undef unless($in); return undef; sub ReadEpsilonFile my ($this, $path) = @_; return $filename; sub ReadIntFile my ($this, $path, $idx) = @_; return undef unless($int); return 1; sub ReadPDOSFilesWithIndex my ($this, $pPathArray, $idx) = @_; return undef unless($in); return $filename; sub ReadPDOSFiles my ($this, $path) = @_; return $filename; sub MakeKListForFS my ($this, $KListPath, $CheckPath, $Crystal, $Title, $UseSymmetry, $nx, $ny, $nz, $div, $emin, $emax, $K, $IsPrint) = @_; return (0); return (1, @KIndex); sub ReadKListBandFile my ($this, $path) = @_; return undef unless($in); return 1; sub ReadSpaghettiBandFileWithIndex my ($this, $path, $idx) = @_; return undef unless($in); return $filename; sub ReadSpaghettiBandFile my ($this, $path) = @_; return $filename; sub Read my ($this, $filename) = @_; return undef unless($FileType); return $this->ReadEpsilonFile($filename); return $this->ReadSpaghettiBandFile($filename); return $this->ReadPDOSFiles($filename); return undef; sub SetSampleName my ($this, $name) = @_; return $this->{'SampleName'} = $name; sub SampleName my ($this) = @_; return $this->{'SampleName'}; sub ReadOrbitalSymmetriesFromQtlFile my ($this, $filename) = @_; return 0; return @lines; sub ReadFermiEnergy my ($this, $StructPath, $IsPrint, $IgnoreError) = @_; return undef if($IgnoreError); return $EF; sub ReadSCFFileParameter my ($this, $SCFFile, $Param) = @_; return -1; return $LastVal; sub ReadStructFile my ($this, $filename, $IsPrint, %arg) = @_; return undef unless($in); return $crystal; sub SaveINSPFile my ($this, $StructPath, %args) = @_; return 1; return 0; return 1; sub SaveStructFile my ($this, $Crystal, $filename, $IsExpandCoordinate, $IsChooseRandomly, $UseSameBasisForSameAtom, $InsertSharedAtomCausion) = @_; return; return 1; sub SaveSymmetrizedStructFileFromCrystal my ($this, $Crystal, $StructPath, $SymmetrizedStructPath, $SGROUPPath, $tol, $IsPrint) = @_; return 0; return $this->SaveSymmetrizedStructFile($StructPath, $SymmetrizedStructPath, $SGROUPPath, $tol, $IsPrint); sub SaveSymmetrizedStructFile my ($this, $StructPath, $SymmetrizedStructPath, $SGROUPPath, $tol, $IsPrint) = @_; return 0; return 0; return 1; sub SaveXYZFile my ($this, $Crystal, $filename, $IsExpandCoordinate, $IsChooseRandomly) = @_; return; return 1; sub BuildScript my ($this, $Task, $Parallel, $UseComplex, $SP, $SO, $Orb) = @_; return @lines;