dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #23089
Re: [Question #156790]: eikonal equation
Question #156790 on DOLFIN changed:
https://answers.launchpad.net/dolfin/+question/156790
Status: Answered => Open
Chaffra is still having a problem:
Thanks for your answers Mikael. I would be interested in knowing more
about the chain rule implementation if you have more info/resources on
how to do it. Also using you code above I can solve the eikonal equation
for my case but the solution is zero everywhere. I assume this has to do
with the boundary conditions but is there a working demo example I could
work from?
Many thanks,
Chaffra
--new code--
mesh = UnitInterval(51, )
class RefractiveIndex(Expression):
def eval(self, values,x):
if x[0]<0.5:
values[0] = 1.0
else:
values[0] = 100.0
def light_exposed_area(x, on_boundary):
return near(x[0],0.0) and on_boundary
light_boundary = AutoSubDomain(light_exposed_area)
#k_markers = MeshFunction("uint", mesh, mesh.topology().dim() - 1)
#k_markers.set_all(0)
#light_boundary.mark(k_markers,1)
Q = FunctionSpace(mesh,'CG',1)
u = Function(Q)
du = TrialFunction(Q)
v = TestFunction(Q)
eps = Constant(0.01)
n = RefractiveIndex()
F = inner(grad(u), grad(u))*dx - n**2*v*dx + eps*inner(grad(du),grad(v))*dx
J = derivative(F,u,du)
bc = DirichletBC(Q,Constant(0.0),light_boundary)
problem = VariationalProblem(J,-F, bcs=[bc,])
problem.solve(u)
plot(u)
--
You received this question notification because you are a member of
DOLFIN Team, which is an answer contact for DOLFIN.