Skip to content
Snippets Groups Projects
Commit 629ca77b authored by René Heß's avatar René Heß
Browse files

Adapt hyperbolic examples

parent 6f2c5975
No related branches found
No related tags found
No related merge requests found
......@@ -21,11 +21,11 @@ flux = as_matrix([[q0, q1],
[0., rho]])
# Define numerical fluxes to choose from
llf_flux = dot(avg(flux), n) - 0.5*jump(u)
llf_flux = dot(avg(flux), n) + 0.5*jump(u)
numerical_flux = llf_flux
r = -1. * inner(flux, grad(v))*dx \
- inner(numerical_flux, jump(v))*dS \
+ inner(numerical_flux, jump(v))*dS \
+ inner(u, v)*ds
interpolate_expression = f, 0.0, 0.0
......@@ -15,15 +15,15 @@ v = TestFunction(V)
beta = as_vector((1., 1.))
n = FacetNormal(cell)('+')
def numerical_flux(normal, outside, inside):
def numerical_flux(normal, inside, outside):
return conditional(inner(beta, n) > 0, inside, outside)*inner(beta, n)
mass = u*v*dx
r = -1.*u*inner(beta, grad(v))*dx \
- numerical_flux(n, u('+'), u('-'))*jump(v)*dS \
+ numerical_flux(n, u('+'), u('-'))*jump(v)*dS \
+ inner(beta, n)*u*v*dso \
+ numerical_flux(n, 0.0, u('-'))*v*dsd
+ numerical_flux(n, u('+'), 0.0)*v*dsd
is_dirichlet = dirichlet
interpolate_expression = initial
......
......@@ -23,13 +23,13 @@ b_flux = as_matrix([[-1.* q], [q*q/h + 0.5*g*h*h]])
# Define numerical fluxes to choose from
alpha = Max(abs(n[0]*q('+')) / h('+') + sqrt(g*h('+')), abs(n[0]*q('-')) / h('-') + sqrt(g*h('-')))
llf_flux = dot(avg(flux), n) - 0.5*alpha*jump(u)
llf_flux = dot(avg(flux), n) + 0.5*alpha*jump(u)
alpha_b = abs(n[0]*q) / h + sqrt(g*h)
boundary_flux = 0.5*dot(flux + b_flux, n) + alpha_b * as_vector([0., q])
numerical_flux = llf_flux
r = -1. * inner(flux, grad(v))*dx \
- inner(numerical_flux, jump(v))*dS \
+ inner(numerical_flux, jump(v))*dS \
+ inner(boundary_flux, v)*ds
interpolate_expression = f, 0.0
......@@ -21,11 +21,11 @@ flux = as_matrix([[q0, q1],
[0., rho]])
# Define numerical fluxes to choose from
llf_flux = dot(avg(flux), n) - 0.5*jump(u)
llf_flux = dot(avg(flux), n) + 0.5*jump(u)
numerical_flux = llf_flux
r = -1. * inner(flux, grad(v))*dx \
- inner(numerical_flux, jump(v))*dS \
+ inner(numerical_flux, jump(v))*dS \
+ inner(u, v)*ds
interpolate_expression = f, 0.0, 0.0
......@@ -15,15 +15,15 @@ v = TestFunction(V)
beta = as_vector((1., 1.))
n = FacetNormal(cell)('+')
def numerical_flux(normal, outside, inside):
def numerical_flux(normal, inside, outside):
return conditional(inner(beta, n) > 0, inside, outside)*inner(beta, n)
mass = u*v*dx
r = -1.*u*inner(beta, grad(v))*dx \
- numerical_flux(n, u('+'), u('-'))*jump(v)*dS \
+ numerical_flux(n, u('+'), u('-'))*jump(v)*dS \
+ inner(beta, n)*u*v*dso \
+ numerical_flux(n, 0.0, u('-'))*v*dsd
+ numerical_flux(n, u('+'), 0.0)*v*dsd
exact_solution = 0.0
is_dirichlet = dirichlet
......
......@@ -27,12 +27,12 @@ bflux = as_matrix([[-q0, -q1],
# Define numerical fluxes to choose from
llf_flux = dot(avg(flux), n) - 0.5*jump(u)
llf_flux = dot(avg(flux), n) + 0.5*jump(u)
boundary_flux = 0.5*dot(flux + bflux, n) + as_vector([0., q0, q1])
numerical_flux = llf_flux
r = -1. * inner(flux, grad(v))*dx \
- inner(numerical_flux, jump(v))*dS \
+ inner(numerical_flux, jump(v))*dS \
+ inner(boundary_flux, v)*ds
interpolate_expression = f, 0.0, 0.0
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