Juzar Thingna
2010-08-21 14:58:35 UTC
Hello Everyone,
I'm trying to solve the modified helmholtz equation div(grad(u))=u/L on
different domains.
I'm particularly facing problems with the following two domains.
box {
<-0.25,0.0,-14>,<0.25,0.5,14>
pigment{color rgb <1,0,0>}
}
intersection{
box {<-0.25,0.0,-14>,<0.25,0.5,14>}
box {<-0.25,-1,-0.25>,<0.25,0,0.25>}
pigment{color rgb <0,0,1>}
}
and
box {
<-5,0,-5>,<5,0.1,5>
pigment{
color rgb <1,0,0>}
}
intersection{
box {<-0.25,-20,-0.25>,<0.25,0.0,0.25>}
box {<-5,0.0,-5>,<5,0.1,5>}
pigment{color rgb <0,0,1>}
}
The intersection are particularly surface meshes where I set the boundary
conditions. Here is the input file, where vectors a and b are set acc to the
domain.
vector n=(5,800,400);
vector a=( , , );
vector b=( , , );
scene S=pov("domain.pov");
function L=1.96;
mesh M=structured(n,a,b);
domain O =domain(S,inside(<1,0,0>));
domain Q =domain(S,inside(<0,0,1>));
mesh T = surface(Q,M);
solve(u) in O by M method (type=eliminate),
bicg(epsilon=1E-4, maxiter=100000),
krylov(precond=diagonal,type=bicg)
{
pde(u)
div(L*grad(u))-u=0;
u=0.0 on M zmax;
u=0.0 on M zmin;
dnu(u)=0.204895*0.336021505*L on T;
}
mesh Z = tetrahedrize (O,M);
save(medit,"hel_u_n",u,Z);
save(medit,"hel_u_n",Z);
save(raw,"hel_u_n.dat",u,M);
For these two domains where I use surface meshes to specify boundary
conditions the convergence is quite slow and it takes a lot of time for the
residu to reach the value of 10^-4.
Is there any way this convergence can be reached faster? Any suggestions
would be highly appreciated.
P.S. I have tried out the krylov types but it doesn't help a lot.
Regards,
Juzar Thingna
Department of Physics,
Center for Computation Science and Engineering,
National University of Singapore.
"I almost wish I hadn't gone down the rabbit-hole ---and yet---and yet---
it's rather curious you know, this sort of life!" Alice
I'm trying to solve the modified helmholtz equation div(grad(u))=u/L on
different domains.
I'm particularly facing problems with the following two domains.
box {
<-0.25,0.0,-14>,<0.25,0.5,14>
pigment{color rgb <1,0,0>}
}
intersection{
box {<-0.25,0.0,-14>,<0.25,0.5,14>}
box {<-0.25,-1,-0.25>,<0.25,0,0.25>}
pigment{color rgb <0,0,1>}
}
and
box {
<-5,0,-5>,<5,0.1,5>
pigment{
color rgb <1,0,0>}
}
intersection{
box {<-0.25,-20,-0.25>,<0.25,0.0,0.25>}
box {<-5,0.0,-5>,<5,0.1,5>}
pigment{color rgb <0,0,1>}
}
The intersection are particularly surface meshes where I set the boundary
conditions. Here is the input file, where vectors a and b are set acc to the
domain.
vector n=(5,800,400);
vector a=( , , );
vector b=( , , );
scene S=pov("domain.pov");
function L=1.96;
mesh M=structured(n,a,b);
domain O =domain(S,inside(<1,0,0>));
domain Q =domain(S,inside(<0,0,1>));
mesh T = surface(Q,M);
solve(u) in O by M method (type=eliminate),
bicg(epsilon=1E-4, maxiter=100000),
krylov(precond=diagonal,type=bicg)
{
pde(u)
div(L*grad(u))-u=0;
u=0.0 on M zmax;
u=0.0 on M zmin;
dnu(u)=0.204895*0.336021505*L on T;
}
mesh Z = tetrahedrize (O,M);
save(medit,"hel_u_n",u,Z);
save(medit,"hel_u_n",Z);
save(raw,"hel_u_n.dat",u,M);
For these two domains where I use surface meshes to specify boundary
conditions the convergence is quite slow and it takes a lot of time for the
residu to reach the value of 10^-4.
Is there any way this convergence can be reached faster? Any suggestions
would be highly appreciated.
P.S. I have tried out the krylov types but it doesn't help a lot.
Regards,
Juzar Thingna
Department of Physics,
Center for Computation Science and Engineering,
National University of Singapore.
"I almost wish I hadn't gone down the rabbit-hole ---and yet---and yet---
it's rather curious you know, this sort of life!" Alice