ff3d-users
[Top][All Lists]
Advanced

[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>
   }
}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]