PRAgMaTIc  master
Namespaces | Functions | Variables
ellipse_convergence.py File Reference

Go to the source code of this file.

Namespaces

 ellipse_convergence
 

Functions

def ellipse_convergence.ellipse_convergence
 
def ellipse_convergence.boundary
 

Variables

tuple ellipse_convergence.ddtestsol = ddtestsol.replace('a**2','(a*a)')
 testsol = '(0.25-ww/2<sqrt(x[0]*x[0]+x[1]*x[1]) && sqrt(x[0]*x[0]+x[1]*x[1]) < 0.25+ww/2 ? (' + stepfunc + ')) : (0.25<sqrt(x[0]*x[0]+x[1]*x[1]) ? 1 : 0)' ddtestsol = '0.25-ww/2<sqrt(x[0]*x[0]+x[1]*x[1]) && sqrt(x[0]*x[0]+x[1]*x[1]) < 0.25+ww/2 ? (' + ddstepfunc + ') : 0' else: # problem == 0: rrpy = pysqrt(sx*sx+sy*sy) #'if(t<2*WeMax,0,if(t<4*WeMax,0.5+3/2/(2*WeMax)*(t-3*WeMax)-2/(2*WeMax)^3*(t-3*WeMax)^3,1))'; %0.5+3/2/dx*(x-xc)-2/dx^3*(x-xc)^3 ddstepfunc = str(diff(stepfunc,sx,sx)+diff(stepfunc,sy,sy)).replace('sx','x[0]').replace('sy','x[1]').replace('x[0]**2','(x[0]*x[0])').replace('x[1]**2','(x[1]*x[1])') stepfunc = str(stepfunc).replace('sx','x[0]').replace('sy','x[1]').replace('x[0]**2','(x[0]*x[0])').replace('x[1]**2','(x[1]*x[1])') #REPLACE ** with pow ddstepfunc = ddstepfunc.replace('(sqrt(a*(x[1]*x[1]) + (x[0]*x[0])/a) - 0.25)**2','pow(sqrt(a*(x[1]*x[1]) + (x[0]*x[0])/a) - 0.25,2.)') ddstepfunc = ddstepfunc.replace('(a*(x[1]*x[1]) + (x[0]*x[0])/a)**(3/2)','pow(a*(x[1]*x[1]) + (x[0]*x[0])/a,1.5)') stepfunc = stepfunc.replace('(sqrt(a*(x[1]*x[1]) + (x[0]*x[0])/a) - 0.25)**3','pow(sqrt(a*(x[1]*x[1]) + (x[0]*x[0])/a) - 0.25,3.)') testsol = '0.25-ww/2<sqrt(x[0]*x[0]+x[1]*x[1]) && sqrt(x[0]*x[0]+x[1]*x[1]) < 0.25+ww/2 ? (' + stepfunc + ') : (0.25<sqrt(x[0]*x[0]+x[1]*x[1]) ? 1 : 0)' ddtestsol = '0.25-ww/2<sqrt(x[0]*x[0]+x[1]*x[1]) && sqrt(x[0]*x[0]+x[1]*x[1]) < 0.25+ww/2 ? (' + ddstepfunc + ') : 0' More...
 
tuple ellipse_convergence.testsol = testsol.replace('ww**2','(ww*ww)')
 
list ellipse_convergence.dofs = []
 
list ellipse_convergence.L2errors = []
 
tuple ellipse_convergence.meshsz = int(round(80*0.005/(eta*(bool(use_adapt)==False)+0.05*(bool(use_adapt)==True))))
 SETUP MESH. More...
 
tuple ellipse_convergence.mesh = RectangleMesh(-0.0,-0.0,0.5*sqrt(asp),0.5/sqrt(asp),meshsz,meshsz,"left/right")
 
tuple ellipse_convergence.V = FunctionSpace(mesh, "CG", CGorder)
 
tuple ellipse_convergence.R = Expression(ddtestsol)
 
tuple ellipse_convergence.a = inner(grad(dis), grad(dus))
 
 ellipse_convergence.L = R*dus*dx
 
tuple ellipse_convergence.bc = DirichletBC(V, Expression(testsol), boundary)
 
tuple ellipse_convergence.H = metric_pnorm(u, eta, max_edge_ratio=1+49*(use_adapt!=2), p=2)
 
tuple ellipse_convergence.L2error = errornorm(Expression(testsol), u, degree_rise=CGorder+2, norm_type='L2')
 
tuple ellipse_convergence.testf = interpolate(u ,FunctionSpace(mesh,'CG',1))
 
tuple ellipse_convergence.testfe = interpolate(Expression(testsol),FunctionSpace(mesh,'CG',1))
 
tuple ellipse_convergence.vtx2dof = vertex_to_dof_map(FunctionSpace(mesh, "CG" ,1))
 
tuple ellipse_convergence.zz = testf.vector()
 
tuple ellipse_convergence.hh = tricontourf(mesh.coordinates()[:,0],mesh.coordinates()[:,1],mesh.cells(),zz,100,cmap=get_cmap('binary'))
 
tuple ellipse_convergence.fid = open("DOFS_L2errors_CG"+str(CGorder)+outname+".mpy",'w')
 
int ellipse_convergence.NfitP = 9
 
tuple ellipse_convergence.I = array(range(len(dofs)-NfitP,len(dofs)))