ff3d-users
[Top][All Lists]

## [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
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)
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)
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)
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);
```