@@ -27,13 +27,14 @@ def __init__(self, filename='INCAR'):
2727 filename string, name of INCAR file
2828 ============ =======================================
2929 """
30- VasPy .__init__ (self , filename )
30+ super (self .__class__ , self ).__init__ (filename )
31+ self .__filename = filename
3132 self .load ()
3233
3334 def load (self ):
3435 "Load all data in INCAR."
3536 tot_pnames , tot_datas = [], []
36- with open (self .filename , 'r' ) as f :
37+ with open (self .__filename , 'r' ) as f :
3738 for line in f :
3839 matched = self .rdata (line )
3940 if matched :
@@ -43,10 +44,22 @@ def load(self):
4344 # set attrs
4445 for pname , data in zip (tot_pnames , tot_datas ):
4546 setattr (self , pname , data )
46- self .pnames = tot_pnames
47+ self .__pnames = tot_pnames
4748
4849 return
4950
51+ def pnames (self ):
52+ """
53+ Query function for all parameter names.
54+ """
55+ return self .__pnames
56+
57+ def file_name (self ):
58+ """
59+ Query function for all INCAR path names.
60+ """
61+ return self .__filename
62+
5063 @staticmethod
5164 def rdata (line ):
5265 "Get INCAR data(s) in a line."
@@ -74,32 +87,46 @@ def rdata(line):
7487 return pnames , datas
7588
7689 def set (self , pname , data ):
90+ """
91+ Set a named parameter of InCar object.
92+
93+ Example:
94+ --------
95+ >>> incar_obj.set("ISIF", 2)
96+ """
7797 if not hasattr (self , pname ):
7898 raise ValueError ('%s is not in INCAR, ' +
7999 'Use add() instead.' % pname )
80100 setattr (self , pname , str (data ))
81101 return
82102
83103 def add (self , pname , data ):
104+ """
105+ Add a new parameter name to InCar object.
106+
107+ Example:
108+ --------
109+ >>> incar_obj.add("ISIF", 2)
110+ """
84111 data = str (data )
85112 if hasattr (self , pname ):
86113 print ("Waring: %s is already in INCAR, " +
87114 "set to %s" % (pname , data ))
88115 else :
89- self .pnames .append (pname )
116+ self .__pnames .append (pname )
90117 setattr (self , pname , data )
91118
92119 return
93120
94121 def tofile (self ):
95122 "Create INCAR file."
96123 content = '# Created by VASPy\n '
97- for pname in self .pnames :
124+ for pname in self .__pnames :
98125 if not hasattr (self , pname ):
99126 raise ValueError ('Unknown parameter: %s' % pname )
100127 data = str (getattr (self , pname ))
101128 content += '%s = %s\n ' % (pname , data )
102- with open ('INCAR' , 'w' ) as f :
129+ with open (self . __filename , 'w' ) as f :
103130 f .write (content )
104131
105132 return
0 commit comments