Posted By: Anonymous
I’ve been trying to get a fix and can’t find why the error keeps appearing. Pmin,Pmax,w,fi1 and fi2 have all been assigned finite values
When i remove this line from the code, the same error appears at the next line of code, again for no reason I can think of
Edit: Here is the chunk of code I was referring to:
def Psat(self, T): pop= self.getPborder(T) boolean=int(pop) P1=pop P2=pop if boolean: Pmin = float(min([P1, P2])) Pmax = float(max([P1, P2])) Tr=T/self.typeMolecule.Tc w=0.5*(1+scipy.tanh((10**5)*(Tr-0.6))) fi1=0.5*(1-scipy.tanh(8*((Tr**0.4)-1))) fi2=0.460*scipy.sqrt(1-(Tr-0.566)**2/(0.434**2)+0.494 guess = Pmin+(Pmax-Pmin)*((1-w**2)*fi1+(w**2)*fi2) #error here solution = scipy.optimize.newton(funcPsat,guess, args=(T,self))
For problems where it seems to be an error on a line you think is correct, you can often remove/comment the line where the error appears to be and, if the error moves to the next line, there are two possibilities.
Either both lines have a problem or the previous line has a problem which is being carried forward. The most likely case is the second option (even more so if you remove another line and it moves again).
For example, the following Python program
xyzzy = (1 + plugh = 7
generates the error:
File "twisty_passages.py", line 2 plugh = 7 ^ SyntaxError: invalid syntax
despite the problem clearly being on line 1.
In your particular case, that is the problem. The parentheses in the line before your error line is unmatched, as per the following snippet:
# open parentheses: 1 2 3 # v v v fi2=0.460*scipy.sqrt(1-(Tr-0.566)**2/(0.434**2)+0.494 # ^ ^ # close parentheses: 1 2
Depending on what you’re trying to achieve, the solution may be as simple as just adding another closing parenthesis at the end, to close off the
I can’t say for certain since I don’t recognise the expression off the top of my head. Hardly surprising if (assuming PSAT is the enzyme, and the use of the
typeMolecule identifier) it’s to do with molecular biology – I seem to recall failing Biology consistently in my youth 🙂