ff3d-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ff3d-users] Negative values, memory=none


From: Joerg R. Weimar
Subject: [ff3d-users] Negative values, memory=none
Date: Thu, 27 Nov 2003 10:19:50 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030312

I have a few questions:

1. Does ff3d have a bug preventing it from using negative values?

The attached problem "negtest.txt" should generate a linear solution ranging from -1 to 1, but somehow generates 1-0-1. This is not just in the output, but also in the data, as can be seen from the integral evaluation.

2. When selecting option memory(matrix=none), one must also set
        method(type=penalty)
if dirichlet boundary conditions are present. This is not the default, contrary to the information in the docs. Is this correct?

3. Are any primitives beyond box,sphere,cylinder supported (or planned)?
   I would like to see cone, surface of revolution, extrusion.

4. I am trying to solve a combined problem in two domains:
first solve on mesh M, then solve a similar problem on mesh M2, using the first solution as boundary condition. I cannot figure out how to do this correctly (See combined.txt).

Best regards, Jörg Weimar.


--
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 = (3, 3, 3);
vertex a = (-1, -1, -1);
vertex b = ( 1, 1, 1);
mesh M = structured(n,a,b);
 
scene S = pov("empty.pov"); // the pov-ray file for the geometry
domain O = domain(S);

solve(u) in O by M 
{
   pde(u)
     - div(grad(u)) = 0;
     u = -1 on M zmin;
     u = 1 on M zmax;
};

double I=int(M)(u);
double J=int(M)(1);

cout << I << " " << J << " Average: " <<I/J << "\n";

save(opendx,"u.dat",u,M);
vector n = (9, 9, 9);
vertex a = (-1, -1, -1);
vertex b = ( 1, 1, 1);
mesh M = structured(n,a,b);

vertex c = ( 1, 1, 2);
mesh M2 = structured(n,b,c);
 
scene S = pov("empty.pov"); // the pov-ray file for the geometry
domain O = domain(S);

solve(u) in O by M 
{
   pde(u)
     - div(grad(u)) = 0;
     u = 0 on M xmin;
     u = 2 on M xmax;
};

double I=int(M)(u);
double J=int(M)(1);

cout << I << " " << J << " Average: " <<I/J << "\n";


solve(u2) in O by M2 
{
   pde(u2)
     - div(grad(u2)) = 0;
     u2 = u on M2 zmin;
     u2 = 3 on M2 zmax;
};

double I2=int(M2)(u2);
double J2=int(M2)(1);

cout << I2 << " " << J2 << " Average: " <<I2/J2 << "\n";

save(opendx,"u.dat",u,M);

reply via email to

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