[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ff3d-users] boundaries of objects and meshes
From: |
Joerg R. Weimar |
Subject: |
[ff3d-users] boundaries of objects and meshes |
Date: |
Mon, 01 Dec 2003 15:16:52 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030312 |
Dear ff3d users and developers,
I am having some difficulties with ff3d when pbject have surfaces near
a plane of the mesh. I have included a sample file which illustrates the
problems:
1.
In meshtest1.pov, the box coincides with the mesh dimensions, and I get
the error
Generating Surface Meshes
Marching cube ...SurfaceMeshGenerator.cpp:3032: meshing object box {
<-2, -2, -2>, <2, 2, 2>
}
a problem occured ...
Check that:
- the object is not to small compare to the background mesh
- the object intersects the background mesh
2. In meshtest2.pov, the mesh is slightly smaller on the zmin side.
In this case, I get a result. Actually, shifting any one side is sufficient.
Unfortunalety, the result I get is not what I expect. This is a 3d
version of the following 1-d problem:
u = 0 at z=-1
u = 10 at z=2
Laplacian(u) = 0.
Mesh: 5 points over z=-2..2 i.e., points -2,-1,0,1,2
Since I implicitly use von-Neumann conditions in x and y, these should
not change the solution.
I expect a linear solution, which means that on the mesh I expect
u1 below, but get u2:
z u1 u2
-2 0 0
-1 0 0
0 3.33 5
1 6.66 7.5
2 10 10
Does anyone know how to interpret this?
3. If I shift the boundary of the lower object, (meshtest3.pov) I get a
segmentation fault:
Program received signal SIGSEGV, Segmentation fault.
0x080d3556 in MeshExtractor<SurfaceMeshOfTriangles>::operator()(unsigned
const&) const ()
Best regards, Jörg.
--
PD Dr. Joerg R. Weimar, Inst. f. Wissensch. Rechnen, TU-Braunschweig
address@hidden, http://www.tu-bs.de/institute/WiR/weimar
Tel. +49-531-391-3006 Mail: D-38092 Braunschweig
vector n = (5,5,5);
vertex a = (-2, -2, -2);
vertex b = ( 2,2,2);
mesh M = structured(n,a,b);
scene S = pov("meshtest1.pov"); // the pov-ray file for the geometry
domain O = domain(S,inside(<1,1,0>) && outside(<0,0,1>) && inside(<0,1,0>));
function u0 = (0.0);
function u1 = u0 + 10.0;
function um = (u1+u0)/2;
function conductivity = 1.0 ;
solve(u) in O by M
// memory(matrix=none),
// method(type=penalty)
{
pde(u)
- div(conductivity*grad(u)) = 0;
u = u0 on <0,0,1>;
u = u1 on M zmax;
};
double I=int(M)(u);
double J=int(M)(1);
cout << I << " " << J << " " <<I/J << "\n";
save(opendx,"u_meshtest.dat",u,M);
box {
// Domain
<-2, -2, -2>, <2, 2, 2>
pigment {
color rgb <1, 1, 0>
}
}
box {
// LowerElectrode
<-2,-2,-2>, <2,2,-1>
pigment {
color rgb <0, 0, 1>
}
}
box {
// filament
<-2, -2, -1>, <2, 2, 2>
pigment {
color rgb <0, 1, 0>
}
}
box {
// Domain
< -2,-2, -1.9999>, <2, 2, 2>
pigment {
color rgb <1, 1, 0>
}
}
box {
// LowerElectrode
<-2,-2,-2>, <2,2,-1>
pigment {
color rgb <0, 0, 1>
}
}
box {
// filament
<-2, -2, -1>, <2, 2, 2>
pigment {
color rgb <0, 1, 0>
}
}
box {
// Domain
< -2,-2, -1.9999>, <2, 2, 2>
pigment {
color rgb <1, 1, 0>
}
}
box {
// LowerElectrode
<-2,-2,-2>, <2,2,-0.5>
pigment {
color rgb <0, 0, 1>
}
}
box {
// filament
<-2, -2, -0.5>, <2, 2, 2>
pigment {
color rgb <0, 1, 0>
}
}
- [ff3d-users] boundaries of objects and meshes,
Joerg R. Weimar <=