Skip to content
Snippets Groups Projects
Commit e9ba2c0c authored by Andreas Dedner's avatar Andreas Dedner
Browse files

added error computation for pulse problem - for other trst cases exact

solution needs to be added
parent 7d0a1efa
No related branches found
No related tags found
1 merge request!4Latest features added to dune-fem-dg.
Pipeline #11449 failed
......@@ -15,9 +15,9 @@ fem.timeprovider.updatestep: 1
# parameter for the implicit solvers
# fem.differenceoperator.eps: 1e-12
fem.solver.gmres.restart: 50
fem.solver.newton.verbose: true
fem.solver.newton.linear.verbose: true
fem.solver.verbose: true
fem.solver.newton.verbose: false
fem.solver.newton.linear.verbose: false
fem.solver.verbose: false
fem.solver.newton.maxlineariterations: 100000
fem.solver.newton.tolerance: 1e-07
fem.solver.newton.linabstol: 1.25e-9
......
......@@ -117,7 +117,7 @@ def pulse():
yq = (-x0*sin(4.0*t) + x1*cos(4.0*t))
return as_vector( [(sig2/ (sig2PlusDt4) ) * exp (-( xq*xq + yq*yq ) / sig2PlusDt4 )] )
return LinearAdvectionDiffusion1DDirichlet([ux,uy],eps,u0), u0(0,x),\
[0, 0], [1, 1], [8,8], 1.0,\
[0, 0], [1, 1], [16,16], 1.0,\
"pulse", lambda t: u0(t,x)
def burgersShock():
......
import time
import time, math
from dune.grid import structuredGrid, cartesianDomain
from dune.fem import parameter
from dune.fem.function import integrate
......@@ -9,8 +9,8 @@ from ufl import dot
# from scalar import shockTransport as problem
# from scalar import constantTransport as probelm
from scalar import sinProblem as problem
# from scalar import pulse as problem
# from scalar import sinProblem as problem
from scalar import pulse as problem
Model, initial, x0,x1,N, endTime, name, exact = problem()
......@@ -22,8 +22,8 @@ grid = structuredGrid(x0,x1,N)
# grid = create.grid("ALUSimplex", cartesianDomain(x0,x1,N))
dimR = 1
t = 0
dt = 0.001
saveStep = 0.01
dt = 0.005
saveStep = 0.05
saveTime = saveStep
count = 0
......@@ -51,6 +51,8 @@ def useODESolver():
saveTime += saveStep
grid.writeVTK(name, celldata=[u_h], number=count, subsampling=2)
print("time loop:",time.time()-start)
# error = integrate( dot(u_h-exact(t),u_h-exact(t)), order=5 )
if exact is not None:
error = integrate( grid, dot(u_h-exact(t),u_h-exact(t)), order=5 )
print("error:", math.sqrt(error) )
useODESolver()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment