|
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))) |
|