Discussion:
[ff3d-users] Extremely slow convergence for certain domains
Juzar Thingna
2010-08-21 14:58:35 UTC
Permalink
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
Stephane Del Pino
2010-08-23 10:48:08 UTC
Permalink
Dear Juzar.

I am afraid there are no good preconditionners in ff3d for non "symmetric and
positive definite" linear problems. Also the shape of the domain (very
stretched) and the aspect ratio of the cells in the mesh do not help.

Sorry but I have no immediate solution to help you.

Also, I founded something strange in your data file. You impose "dnu(u)" on the
internal boundary 'T'. This corresponds up to the sign to the jump of the
normal derivative across 'T'. Is that what you meant?

Best regards,
Stéphane.

Continue reading on narkive:
Loading...