/[escript]/trunk/finley/test/python/gentest
ViewVC logotype

Diff of /trunk/finley/test/python/gentest

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 767 by gross, Fri Jun 30 06:44:14 2006 UTC revision 768 by gross, Fri Jun 30 09:26:16 2006 UTC
# Line 280  def makeTermText(func): Line 280  def makeTermText(func):
280        return out        return out
281  def makeContactDerivativeText(func,dim,func_name):  def makeContactDerivativeText(func,dim,func_name):
282     sh=func.shape     sh=func.shape
283     out=""     out=2*intend+"n_contact=FunctionOnContactZero(self.domain).getNormal()\n"
284     if len(sh)==dim+2:     if len(sh)==dim+2:
285        if sh[0]==1:        if sh[0]==1:
286             out2=""             out2=""
287             for j in range(sh[1]):             for j in range(sh[1]):
288                   t=makeTermText(func[0,j])                   t=makeTermText(func[0,j])
289                   if not t == "0":                   if not t == "0":
290                      if len(out2)>0: out2+="+"                      if j==0:
291                      if j==0: out2+=t                        if len(out2)>0: out2+="+"
292                          out2+=t
293             if len(out2)==0:             if len(out2)==0:
294                 out+=2*intend+"%s=%s\n"%(func_name,0)                 out+=2*intend+"%s=%s\n"%(func_name,0)
295             else:             else:
296                 out+=2*intend+"%s=%s\n"%(func_name,out2)                 out+=2*intend+"%s=n_contact[0]*(%s)\n"%(func_name,out2)
297        else:        else:
298             out+=2*intend+"%s=Data(0.,%s,FunctionOnContactZero(self.domain))\n"%(func_name,str(tuple(sh[:1])))             out+=2*intend+"%s=Data(0.,%s,FunctionOnContactZero(self.domain))\n"%(func_name,str(tuple(sh[:1])))
299             for i in range(sh[0]):             for i in range(sh[0]):
# Line 300  def makeContactDerivativeText(func,dim,f Line 301  def makeContactDerivativeText(func,dim,f
301                for j in range(sh[1]):                for j in range(sh[1]):
302                   t=makeTermText(func[i,j])                   t=makeTermText(func[i,j])
303                   if not t == "0":                   if not t == "0":
304                      if len(out2)>0: out2+="+"                      if j==0:
305                      out2+="%s"%t                        if len(out2)>0: out2+="+"
306                          out2+="%s"%t
307                if len(out2)>0:                if len(out2)>0:
308                   out+=2*intend+"%s[%s]=%s\n"%(func_name,i,out2)                   out+=2*intend+"%s[%s]=n_contact[0]*(%s)\n"%(func_name,i,out2)
309     else:     else:
310        raise RunTimeError,"KKK"        raise RunTimeError,"KKK"
311     return out     return out
# Line 342  def makeNormalDerivativeText(func,dim,fu Line 344  def makeNormalDerivativeText(func,dim,fu
344             if len(out2)==0:             if len(out2)==0:
345                 out+=2*intend+"%s=%s\n"%(func_name,0)                 out+=2*intend+"%s=%s\n"%(func_name,0)
346             else:             else:
347                 out+=2*intend+"%s=%s\n"%(func_name,out2)                 out+=2*intend+"%s=%s%s%s\n"%(func_name,extra_pre,out2,extra)
348        else:        else:
349             out+=2*intend+"%s=Data(0.,%s,FunctionOnBoundary(self.domain))\n"%(func_name,str(tuple(sh[:1])))             out+=2*intend+"%s=Data(0.,%s,FunctionOnBoundary(self.domain))\n"%(func_name,str(tuple(sh[:1])))
350             for i in range(sh[0]):             for i in range(sh[0]):
# Line 353  def makeNormalDerivativeText(func,dim,fu Line 355  def makeNormalDerivativeText(func,dim,fu
355                      if len(out2)>0: out2+="+"                      if len(out2)>0: out2+="+"
356                      out2+="n[%s]*(%s)"%(j,t)                      out2+="n[%s]*(%s)"%(j,t)
357                if len(out2)>0:                if len(out2)>0:
358                   out+=2*intend+"%s[%s]=%s\n"%(func_name,i,out2)                   out+=2*intend+"%s[%s]=%s%s%s\n"%(func_name,i,extra_pre,out2,extra)
359     else:     else:
360        raise RunTimeError,"KKK"        raise RunTimeError,"KKK"
361     return out     return out
# Line 466  for s in [1,2]: Line 468  for s in [1,2]:
468              if s==1:              if s==1:
469                  for i in range(d):                  for i in range(d):
470                    test_func=makeTestSolution(order,s,d)                    test_func=makeTestSolution(order,s,d)
471                    body2=makeFunctionText(test_func,d,"u",typ=="Contact")                    body2=makeFunctionText(test_func,d,"u")
472                    body2+=2*intend+"B_test=Data(0.,(%d,),%s(self.domain))\n"%(d,func_i)                    body2+=2*intend+"B_test=Data(0.,(%d,),%s(self.domain))\n"%(d,func_i)
473                    if case == "Const" :                    if case == "Const" :
474                        f=int(8*random.random())+1                        f=int(8*random.random())+1
# Line 485  for s in [1,2]: Line 487  for s in [1,2]:
487                      args="B=B_test, Y=Y_test, y=y_test"                      args="B=B_test, Y=Y_test, y=y_test"
488                    else:                    else:
489                      div_B=makeDiv(B,d)                      div_B=makeDiv(B,d)
490                      body2+=makeFunctionText(-div_B,d,"Y_test",typ=="Contact")                      body2+=makeFunctionText(-div_B,d,"Y_test")
491                      body2+=makeNormalDerivativeText(B,d,"y_test",typ=="Contact")                      body2+=makeNormalDerivativeText(B,d,"y_test")
492                      body2+=makeContactDerivativeText(-B,d,"y_contact_test")                      body2+=makeContactDerivativeText(-B,d,"y_contact_test")
493                      args="B=B_test, Y=Y_test, y=y_test, y_contact=y_contact_test"                      args="B=B_test, Y=Y_test, y=y_test, y_contact=y_contact_test"
494                    makeTitle(d,coffo,solo,s,"B",case,typ,body2,mark="%s"%(i),pdeargs=args,add_jump=(typ=="Contact"))                    makeTitle(d,coffo,solo,s,"B",case,typ,body2,mark="%s"%(i),pdeargs=args)
495              else:              else:
496                  for p in range(s):                  for p in range(s):
497                    for i in range(d):                    for i in range(d):
498                      for q in range(s):                      for q in range(s):
499                        test_func=makeTestSolution(order,s,d)                              test_func=makeTestSolution(order,s,d)      
500                        grad_test_func=makeGradient(test_func,d)                        grad_test_func=makeGradient(test_func,d)
501                        body2=makeFunctionText(test_func,d,"u",typ=="Contact")                        body2=makeFunctionText(test_func,d,"u")
502                        body2+=2*intend+"B_test=Data(0.,(%d,%d,%d),%s(self.domain))\n"%(s,d,s,func_i)                        body2+=2*intend+"B_test=Data(0.,(%d,%d,%d),%s(self.domain))\n"%(s,d,s,func_i)
503                        if case == "Const" :                        if case == "Const" :
504                           f=int(8*random.random())+1                           f=int(8*random.random())+1
# Line 515  for s in [1,2]: Line 517  for s in [1,2]:
517                           args="B=B_test, Y=Y_test, y=y_test"                           args="B=B_test, Y=Y_test, y=y_test"
518                        else:                        else:
519                           div_B=makeDiv(B,d)                           div_B=makeDiv(B,d)
520                           body2+=makeFunctionText(-div_B,d,"Y_test",typ=="Contact")                           body2+=makeFunctionText(-div_B,d,"Y_test")
521                           body2+=makeNormalDerivativeText(B,d,"y_test",typ=="Contact")                           body2+=makeNormalDerivativeText(B,d,"y_test")
522                           body2+=makeContactDerivativeText(B,d,"y_contact_test")                           body2+=makeContactDerivativeText(-B,d,"y_contact_test")
523                           args="B=B_test, Y=Y_test, y=y_test, y_contact=y_contact_test"                           args="B=B_test, Y=Y_test, y=y_test, y_contact=y_contact_test"
524                        makeTitle(d,coffo,solo,s,"B",case,typ,body2,mark="%s%s%s"%(p,i,q),pdeargs=args,add_jump=(typ=="Contact"))                        makeTitle(d,coffo,solo,s,"B",case,typ,body2,mark="%s%s%s"%(p,i,q),pdeargs=args)
525              if typ=="Strong":              if typ=="Strong":
526                 # coefficient C:                 # coefficient C:
527                 if s==1:                 if s==1:

Legend:
Removed from v.767  
changed lines
  Added in v.768

  ViewVC Help
Powered by ViewVC 1.1.26