<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jan 29, 2014 at 7:19 PM, Luc Berger-Vergiat <span dir="ltr"><<a href="mailto:lb2653@columbia.edu" target="_blank">lb2653@columbia.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi Matt,<br>
I thought I would spend the time writing a small c example of what
I am doing in my FORTRAN code so that you can more easily see what
it is I am doing wrong.<br>
<br>
I attached the code and its makefile. I run the code the following
arguments:<br>
<br>
-ksp_type gmres -pc_type fieldsplit -fieldsplit_0_pc_type ilu
-fieldsplit_0_ksp_type preonly -fieldsplit_1_pc_type jacobi
-fieldsplit_1_ksp_type preonly -ksp_view -ksp_monitor<br></div></div></blockquote><div><br></div><div>1) You need to also call PetscSectionSetDof() in order to get full sizes. I don't just add up the fields.</div>
<div><br></div><div>2) You need to set the DM into the KSP using KSPSetDM()</div><div><br></div><div>3) You need to make the DM inactive if you want to provide your own Mat/Vec using KSPSetDMActive()</div><div><br></div><div>
4) Then you can get rid of the special code for FS</div><div><br></div><div>5) Your options were wrong because you named the fields</div><div><br></div><div>I include a revised code sample, and you should run with</div><div>
<br></div><div> -ksp_type gmres -pc_type fieldsplit -fieldsplit_Field_0_pc_type ilu -fieldsplit_Field_0_ksp_type preonly -fieldsplit_Field_1_pc_type jacobi -fieldsplit_Field_1_ksp_type preonly -ksp_view -ksp_monitor</div>
<div><br></div><div> Thanks,</div><div><br></div><div> Matt</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><div>
and get the following output:<br>
<br>
start=1, End=9.<br>
PetscSection with 2 fields<br>
field 0 with 1 components<br>
Process 0:<br>
( 1) dim 1 offset 0<br>
( 2) dim 1 offset 0<br>
( 3) dim 1 offset 0<br>
( 4) dim 1 offset 0<br>
( 5) dim 0 offset 0<br>
( 6) dim 0 offset 0<br>
( 7) dim 0 offset 0<br>
( 8) dim 0 offset 0<br>
field 1 with 1 components<br>
Process 0:<br>
( 1) dim 0 offset 1<br>
( 2) dim 0 offset 1<br>
( 3) dim 0 offset 1<br>
( 4) dim 0 offset 1<br>
( 5) dim 1 offset 0<br>
( 6) dim 1 offset 0<br>
( 7) dim 1 offset 0<br>
( 8) dim 1 offset 0<br>
PC flag for GetDMSplits: true<br>
0 KSP Residual norm 0.000000000000e+00 <br>
KSP Object: 1 MPI processes<br>
type: gmres<br>
GMRES: restart=30, using Classical (unmodified) Gram-Schmidt
Orthogonalization with no iterative refinement<br>
GMRES: happy breakdown tolerance 1e-30<br>
maximum iterations=10000, initial guess is zero<br>
tolerances: relative=1e-05, absolute=1e-50, divergence=10000<br>
left preconditioning<br>
using PRECONDITIONED norm type for convergence test<br>
PC Object: 1 MPI processes<br>
type: fieldsplit<br>
FieldSplit with MULTIPLICATIVE composition: total splits = 2<br>
Solver info for each split is in the following KSP objects:<br>
Split number 0 Defined by IS<br>
KSP Object: (fieldsplit_Field_0_) 1 MPI processes<br>
type: preonly<br>
maximum iterations=10000, initial guess is zero<br>
tolerances: relative=1e-05, absolute=1e-50,
divergence=10000<br>
left preconditioning<br>
using NONE norm type for convergence test<br>
PC Object: (fieldsplit_Field_0_) 1 MPI processes<br>
type: ilu<br>
ILU: out-of-place factorization<br>
0 levels of fill<br>
tolerance for zero pivot 2.22045e-14<br>
using diagonal shift on blocks to prevent zero pivot<br>
matrix ordering: natural<br>
factor fill ratio given 1, needed 1<br>
Factored matrix follows:<br>
Matrix Object: 1 MPI processes<br>
type: seqaij<br>
rows=0, cols=0<br>
package used to perform factorization: petsc<br>
total: nonzeros=0, allocated nonzeros=0<br>
total number of mallocs used during MatSetValues
calls =0<br>
not using I-node routines<br>
linear system matrix = precond matrix:<br>
Matrix Object: 1 MPI processes<br>
type: seqaij<br>
rows=0, cols=0<br>
total: nonzeros=0, allocated nonzeros=0<br>
total number of mallocs used during MatSetValues calls =0<br>
not using I-node routines<br>
Split number 1 Defined by IS<br>
KSP Object: (fieldsplit_Field_1_) 1 MPI processes<br>
type: preonly<br>
maximum iterations=10000, initial guess is zero<br>
tolerances: relative=1e-05, absolute=1e-50,
divergence=10000<br>
left preconditioning<br>
using NONE norm type for convergence test<br>
PC Object: (fieldsplit_Field_1_) 1 MPI processes<br>
type: ilu<br>
ILU: out-of-place factorization<br>
0 levels of fill<br>
tolerance for zero pivot 2.22045e-14<br>
using diagonal shift on blocks to prevent zero pivot<br>
matrix ordering: natural<br>
factor fill ratio given 1, needed 1<br>
Factored matrix follows:<br>
Matrix Object: 1 MPI processes<br>
type: seqaij<br>
rows=0, cols=0<br>
package used to perform factorization: petsc<br>
total: nonzeros=0, allocated nonzeros=0<br>
total number of mallocs used during MatSetValues
calls =0<br>
not using I-node routines<br>
linear system matrix = precond matrix:<br>
Matrix Object: 1 MPI processes<br>
type: seqaij<br>
rows=0, cols=0<br>
total: nonzeros=0, allocated nonzeros=0<br>
total number of mallocs used during MatSetValues calls =0<br>
not using I-node routines<br>
linear system matrix = precond matrix:<br>
Matrix Object: 1 MPI processes<br>
type: seqaij<br>
rows=8, cols=8<br>
total: nonzeros=64, allocated nonzeros=160<br>
total number of mallocs used during MatSetValues calls =8<br>
using I-node routines: found 2 nodes, limit used is 5<br>
The solution to this problem is:<br>
Vector Object: 1 MPI processes<br>
type: seq<br>
0<br>
0<br>
0<br>
0<br>
0<br>
0<br>
0<br>
0<br>
WARNING! There are options you set that were not used!<br>
WARNING! could be spelling mistake, etc!<br>
Option left: name:-fieldsplit_0_ksp_type value: preonly<br>
Option left: name:-fieldsplit_0_pc_type value: ilu<br>
Option left: name:-fieldsplit_1_ksp_type value: preonly<br>
Option left: name:-fieldsplit_1_pc_type value: jacobi<br>
<br>
when I run it with the more simple arguements:<br>
<br>
-ksp_type gmres -pc_type jacobi -ksp_view -ksp_monitor<br>
<br>
I get the following output:<br>
<br>
start=1, End=9.<br>
PetscSection with 2 fields<br>
field 0 with 1 components<br>
Process 0:<br>
( 1) dim 1 offset 0<br>
( 2) dim 1 offset 0<br>
( 3) dim 1 offset 0<br>
( 4) dim 1 offset 0<br>
( 5) dim 0 offset 0<br>
( 6) dim 0 offset 0<br>
( 7) dim 0 offset 0<br>
( 8) dim 0 offset 0<br>
field 1 with 1 components<br>
Process 0:<br>
( 1) dim 0 offset 1<br>
( 2) dim 0 offset 1<br>
( 3) dim 0 offset 1<br>
( 4) dim 0 offset 1<br>
( 5) dim 1 offset 0<br>
( 6) dim 1 offset 0<br>
( 7) dim 1 offset 0<br>
( 8) dim 1 offset 0<br>
0 KSP Residual norm 4.759858191165e+00 <br>
1 KSP Residual norm 2.344421567248e+00 <br>
2 KSP Residual norm 3.208390394507e-01 <br>
3 KSP Residual norm 7.171256210359e-02 <br>
4 KSP Residual norm 1.301032901980e-02 <br>
5 KSP Residual norm 1.104121978197e-15 <br>
KSP Object: 1 MPI processes<br>
type: gmres<br>
GMRES: restart=30, using Classical (unmodified) Gram-Schmidt
Orthogonalization with no iterative refinement<br>
GMRES: happy breakdown tolerance 1e-30<br>
maximum iterations=10000, initial guess is zero<br>
tolerances: relative=1e-05, absolute=1e-50, divergence=10000<br>
left preconditioning<br>
using PRECONDITIONED norm type for convergence test<br>
PC Object: 1 MPI processes<br>
type: jacobi<br>
linear system matrix = precond matrix:<br>
Matrix Object: 1 MPI processes<br>
type: seqaij<br>
rows=8, cols=8<br>
total: nonzeros=64, allocated nonzeros=160<br>
total number of mallocs used during MatSetValues calls =8<br>
using I-node routines: found 2 nodes, limit used is 5<br>
The solution to this problem is:<br>
Vector Object: 1 MPI processes<br>
type: seq<br>
-0.977778<br>
-0.0444444<br>
-0.844444<br>
-0.327778<br>
3<br>
1<br>
1.5<br>
3<br>
<br>
It is obvious that something goes wrong in the fieldsplit, I'm
just clueless to what it is. I think that everything is setup
correctly but I'm missing something to get the KSP to recognize my
splits...<br>
<br>
Thanks for your help.<br>
<pre cols="72">Best,
Luc</pre>
On 01/28/2014 11:20 AM, Matthew Knepley wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Tue, Jan 28, 2014 at 10:11 AM, Luc
Berger-Vergiat <span dir="ltr"><<a href="mailto:lb2653@columbia.edu" target="_blank">lb2653@columbia.edu</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>What I don't really understand is why the size of
all the sub fields is zero?<br>
As you can see all the matrix object in my fieldsplit
preconditioner have total:nonzeros=0, allocated
nonzeros=0.<br>
<br>
This seems strange since I issued the following
command:<br>
<em></em>call DMSetDefaultSection(FSDM,
FSSection, ierr)<br>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>That section looks like you never called
PetscSectionSetUp().</div>
<div><br>
</div>
<div> Matt</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div> with a the following FSSection:<br>
PetscSection with 4 fields<br>
field 0 with 1 components<br>
Process 0:<br>
( 0) dim 0 offset 0<br>
( 1) dim 1 offset 0<br>
( 2) dim 0 offset 0<br>
( 3) dim 0 offset 0<br>
( 4) dim 1 offset 0<br>
( 5) dim 0 offset 0<br>
( 6) dim 0 offset 0<br>
( 7) dim 0 offset 0<br>
( 8) dim 0 offset 0<br>
( 9) dim 0 offset 0<br>
( 10) dim 0 offset 0<br>
( 11) dim 0 offset 0<br>
( 12) dim 0 offset 0<br>
( 13) dim 0 offset 0<br>
( 14) dim 0 offset 0<br>
( 15) dim 0 offset 0<br>
field 1 with 1 components<br>
Process 0:<br>
( 0) dim 1 offset 0<br>
( 1) dim 0 offset 1<br>
( 2) dim 1 offset 0<br>
( 3) dim 1 offset 0<br>
( 4) dim 0 offset 1<br>
( 5) dim 1 offset 0<br>
( 6) dim 0 offset 0<br>
( 7) dim 0 offset 0<br>
( 8) dim 0 offset 0<br>
( 9) dim 0 offset 0<br>
( 10) dim 0 offset 0<br>
( 11) dim 0 offset 0<br>
( 12) dim 0 offset 0<br>
( 13) dim 0 offset 0<br>
( 14) dim 0 offset 0<br>
( 15) dim 0 offset 0<br>
field 2 with 1 components<br>
Process 0:<br>
( 0) dim 0 offset 1<br>
( 1) dim 0 offset 1<br>
( 2) dim 0 offset 1<br>
( 3) dim 0 offset 1<br>
( 4) dim 0 offset 1<br>
( 5) dim 0 offset 1<br>
( 6) dim 1 offset 0<br>
( 7) dim 1 offset 0<br>
( 8) dim 1 offset 0<br>
( 9) dim 1 offset 0<br>
( 10) dim 1 offset 0<br>
( 11) dim 1 offset 0<br>
( 12) dim 0 offset 0<br>
( 13) dim 0 offset 0<br>
( 14) dim 0 offset 0<br>
( 15) dim 0 offset 0<br>
field 3 with 1 components<br>
Process 0:<br>
( 0) dim 0 offset 1<br>
( 1) dim 0 offset 1<br>
( 2) dim 0 offset 1<br>
( 3) dim 0 offset 1<br>
( 4) dim 0 offset 1<br>
( 5) dim 0 offset 1<br>
( 6) dim 0 offset 1<br>
( 7) dim 0 offset 1<br>
( 8) dim 0 offset 1<br>
( 9) dim 0 offset 1<br>
( 10) dim 0 offset 1<br>
( 11) dim 0 offset 1<br>
( 12) dim 1 offset 0<br>
( 13) dim 1 offset 0<br>
( 14) dim 1 offset 0<br>
( 15) dim 1 offset 0<br>
<br>
I thought that by using DMSetDefaultSection() I would
be done setting the fields and that the fieldsplit
would detect that section and use it to construct the
splits.<br>
<br>
Should I use another command to tell the PC to use the
DM section?<br>
<pre cols="72">Best,
Luc</pre>
On 01/28/2014 10:25 AM, Matthew Knepley wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Mon, Jan 27, 2014 at
1:35 PM, Luc Berger-Vergiat <span dir="ltr"><<a href="mailto:lb2653@columbia.edu" target="_blank">lb2653@columbia.edu</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Thanks Matt,<br>
this indeed setting the number of fields
earlier solve my issue!<br>
<br>
I have now made some progress getting my
DM setup but I am having troubles setting
my splitfield options.<br>
I ran my problem with the -ksp_view option
to see what is going on and I guess that
somehow the section that I define in my DM
is not used by the preconditioner to split
the fields.<br>
Here is the output of PETSc<br>
<br>
<font face="Helvetica, Arial, sans-serif">KSP
Object: 1 MPI processes<br>
type: gmres<br>
GMRES: restart=30, using Classical
(unmodified) Gram-Schmidt
Orthogonalization with no iterative
refinement<br>
GMRES: happy breakdown tolerance
1e-30<br>
maximum iterations=10000, initial
guess is zero<br>
tolerances: relative=1e-08,
absolute=1e-16, divergence=1e+16<br>
left preconditioning<br>
using PRECONDITIONED norm type for
convergence test<br>
PC Object: 1 MPI processes<br>
type: fieldsplit<br>
FieldSplit with MULTIPLICATIVE
composition: total splits = 4<br>
Solver info for each split is in the
following KSP objects:<br>
Split number 0 Defined by IS<br>
</font></div>
</div>
</blockquote>
<div><br>
</div>
<div>There are 4 splits here and they are
defined by an IS. Why do you think that is not
what you asked for?</div>
<div><br>
</div>
<div> Thanks,</div>
<div><br>
</div>
<div> Matt</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div><font face="Helvetica, Arial,
sans-serif"> KSP Object:
(fieldsplit_Field_0_) 1 MPI
processes<br>
type: preonly<br>
maximum iterations=10000, initial
guess is zero<br>
tolerances: relative=1e-05,
absolute=1e-50, divergence=10000<br>
left preconditioning<br>
using NONE norm type for
convergence test<br>
PC Object:
(fieldsplit_Field_0_) 1 MPI
processes<br>
type: ilu<br>
ILU: out-of-place factorization<br>
0 levels of fill<br>
tolerance for zero pivot
2.22045e-14<br>
using diagonal shift on blocks
to prevent zero pivot<br>
matrix ordering: natural<br>
factor fill ratio given 1,
needed 1<br>
Factored matrix follows:<br>
Matrix Object: 1
MPI processes<br>
type: seqaij<br>
rows=0, cols=0<br>
package used to perform
factorization: petsc<br>
total: nonzeros=0,
allocated nonzeros=0<br>
total number of mallocs
used during MatSetValues calls =0<br>
not using I-node
routines<br>
linear system matrix = precond
matrix:<br>
Matrix Object: 1 MPI
processes<br>
type: seqaij<br>
rows=0, cols=0<br>
total: nonzeros=0, allocated
nonzeros=0<br>
total number of mallocs used
during MatSetValues calls =0<br>
not using I-node routines<br>
Split number 1 Defined by IS<br>
KSP Object:
(fieldsplit_Field_1_) 1 MPI
processes<br>
type: preonly<br>
maximum iterations=10000, initial
guess is zero<br>
tolerances: relative=1e-05,
absolute=1e-50, divergence=10000<br>
left preconditioning<br>
using NONE norm type for
convergence test<br>
PC Object:
(fieldsplit_Field_1_) 1 MPI
processes<br>
type: ilu<br>
ILU: out-of-place factorization<br>
0 levels of fill<br>
tolerance for zero pivot
2.22045e-14<br>
using diagonal shift on blocks
to prevent zero pivot<br>
matrix ordering: natural<br>
factor fill ratio given 1,
needed 1<br>
Factored matrix follows:<br>
Matrix Object: 1
MPI processes<br>
type: seqaij<br>
rows=0, cols=0<br>
package used to perform
factorization: petsc<br>
total: nonzeros=0,
allocated nonzeros=0<br>
total number of mallocs
used during MatSetValues calls =0<br>
not using I-node
routines<br>
linear system matrix = precond
matrix:<br>
Matrix Object: 1 MPI
processes<br>
type: seqaij<br>
rows=0, cols=0<br>
total: nonzeros=0, allocated
nonzeros=0<br>
total number of mallocs used
during MatSetValues calls =0<br>
not using I-node routines<br>
Split number 2 Defined by IS<br>
KSP Object:
(fieldsplit_Field_2_) 1 MPI
processes<br>
type: preonly<br>
maximum iterations=10000, initial
guess is zero<br>
tolerances: relative=1e-05,
absolute=1e-50, divergence=10000<br>
left preconditioning<br>
using NONE norm type for
convergence test<br>
PC Object:
(fieldsplit_Field_2_) 1 MPI
processes<br>
type: ilu<br>
ILU: out-of-place factorization<br>
0 levels of fill<br>
tolerance for zero pivot
2.22045e-14<br>
using diagonal shift on blocks
to prevent zero pivot<br>
matrix ordering: natural<br>
factor fill ratio given 1,
needed 1<br>
Factored matrix follows:<br>
Matrix Object: 1
MPI processes<br>
type: seqaij<br>
rows=0, cols=0<br>
package used to perform
factorization: petsc<br>
total: nonzeros=0,
allocated nonzeros=0<br>
total number of mallocs
used during MatSetValues calls =0<br>
not using I-node
routines<br>
linear system matrix = precond
matrix:<br>
Matrix Object: 1 MPI
processes<br>
type: seqaij<br>
rows=0, cols=0<br>
total: nonzeros=0, allocated
nonzeros=0<br>
total number of mallocs used
during MatSetValues calls =0<br>
not using I-node routines<br>
Split number 3 Defined by IS<br>
KSP Object:
(fieldsplit_Field_3_) 1 MPI
processes<br>
type: preonly<br>
maximum iterations=10000, initial
guess is zero<br>
tolerances: relative=1e-05,
absolute=1e-50, divergence=10000<br>
left preconditioning<br>
using NONE norm type for
convergence test<br>
PC Object:
(fieldsplit_Field_3_) 1 MPI
processes<br>
type: ilu<br>
ILU: out-of-place factorization<br>
0 levels of fill<br>
tolerance for zero pivot
2.22045e-14<br>
using diagonal shift on blocks
to prevent zero pivot<br>
matrix ordering: natural<br>
factor fill ratio given 1,
needed 1<br>
Factored matrix follows:<br>
Matrix Object: 1
MPI processes<br>
type: seqaij<br>
rows=0, cols=0<br>
package used to perform
factorization: petsc<br>
total: nonzeros=0,
allocated nonzeros=0<br>
total number of mallocs
used during MatSetValues calls =0<br>
not using I-node
routines<br>
linear system matrix = precond
matrix:<br>
Matrix Object: 1 MPI
processes<br>
type: seqaij<br>
rows=0, cols=0<br>
total: nonzeros=0, allocated
nonzeros=0<br>
total number of mallocs used
during MatSetValues calls =0<br>
not using I-node routines<br>
linear system matrix = precond matrix:<br>
Matrix Object: 1 MPI processes<br>
type: seqaij<br>
rows=16, cols=16<br>
total: nonzeros=256, allocated
nonzeros=256<br>
total number of mallocs used during
MatSetValues calls =0<br>
using I-node routines: found 4
nodes, limit used is 5</font><br>
<br>
I am also attaching part of my code which
I use to generate the DM, the KSP and the
PC objects.<br>
<pre cols="72">Best,
Luc</pre>
On 01/25/2014 10:31 AM, Matthew Knepley
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Fri, Jan
24, 2014 at 5:10 PM, Luc
Berger-Vergiat <span dir="ltr"><<a href="mailto:lb2653@columbia.edu" target="_blank">lb2653@columbia.edu</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi all,<br>
I want to use PETSc as a solver
for an FEM problem: modelization
of shear bands using a 4 fields
mixed formulation.<br>
<br>
So far I am just trying to set up
a two fields in a Petsc section,
assign dof too each field and then
set up the section to pass it to a
DM. I am taking this approach
because in general I want for
fieldsplit to work purely on the
algebraic level without knowledge
of boundary conditions or
geometry.<br>
<br>
As of now I have issues when I try
to assign a point and its
associated degree of freedom to a
field using:
PetscSectionSetFieldDof.<br>
Is this the correct way to
associate a dof/point to a field?<br>
</blockquote>
<div><br>
</div>
<div>You have to set the number of
fields before the chart. I am
updating the docs.</div>
<div><br>
</div>
<div> Thanks,</div>
<div> <br>
</div>
<div> Matt</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> I
attached an example code and its
makefile.<span><font color="#888888"><span><font color="#888888"><br>
<br>
-- <br>
Best,<br>
Luc<br>
<br>
</font></span></font></span></blockquote>
<span><font color="#888888"> </font></span></div>
<span><font color="#888888"> <br>
<br clear="all">
<span><font color="#888888">
<div><br>
</div>
-- <br>
What most experimenters take
for granted before they begin
their experiments is
infinitely more interesting
than any results to which
their experiments lead.<br>
-- Norbert Wiener </font></span></font></span></div>
<span><font color="#888888"> </font></span></div>
<span><font color="#888888">
</font></span></blockquote>
<span><font color="#888888">
<br>
</font></span></div>
<span><font color="#888888"> </font></span></blockquote>
<span><font color="#888888"> </font></span></div>
<span><font color="#888888"> <br>
<br clear="all"><span class=""><font color="#888888">
<div><br>
</div>
-- <br>
What most experimenters take for granted
before they begin their experiments is
infinitely more interesting than any results
to which their experiments lead.<br>
-- Norbert Wiener </font></span></font></span></div><span class=""><font color="#888888">
</font></span></div><span class=""><font color="#888888">
</font></span></blockquote><span class=""><font color="#888888">
<br>
</font></span></div><span class=""><font color="#888888">
</font></span></blockquote><span class=""><font color="#888888">
</font></span></div><span class=""><font color="#888888">
<br>
<br clear="all">
<div><br>
</div>
-- <br>
What most experimenters take for granted before they begin
their experiments is infinitely more interesting than any
results to which their experiments lead.<br>
-- Norbert Wiener
</font></span></div>
</div>
</blockquote>
<br>
</div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>