[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: [ff3d-users] a question about improving accuracy in ff3d

**From**: |
Stephane Del Pino |

**Subject**: |
Re: [ff3d-users] a question about improving accuracy in ff3d |

**Date**: |
Thu, 18 Jan 2007 23:26:36 +0100 |

**User-agent**: |
KMail/1.9.5 |

Hello !
The problem you are facing is due to a bad approximation of the diffusion
coefficient 'fk' due to your mesh definition: you should have a mesh that
follows the conductivity discontinuities.
In fact, if your geometry is always this, you can use your strategy using a
structured mesh that fits the geometry:
--------------
vector n = (33,33,5);
vector a = (-0.01,-0.01,0);
vector b = (0.01,0.01,0.0005);
mesh M = structured(n,a,b);
solve(u) in M
krylov(type=cg,precond=ichol)
{
test(w)
int(fk*grad(u)*grad(w)) = int[M zmin](w*q); //
u = 0 on M zmax;
}
---------------
if you change 'n' using (9,9,5),(17,17,5),(33,33,5) you will notice the
convergence. These values represent the number of *vertices* for each
direction.
If you *need* unstructured meshes, you must define a better mesh and set
different references for elements of each zone.
Then, in ff3d, you can use these references using the 'reference' instruction:
function fk = reference(elements,M,ref1:f1[,ref2:f2[,...]]);
for instance if you want the conductivity to be 1E-3 for element of reference
1 and g for elements of references 2, write:
function fk = reference(elements, M, 1:1E-3, 2:g);
Beware that if you do not define the function of an existing reference, fk
will be 0 on those elements...
Did you try to solve the problem with ANSYS using the gmsh mesh?
Best regards,
Stéphane.