[petsc-users] Field split questions
Colin McAuliffe
cjm2176 at columbia.edu
Sun Aug 26 20:42:11 CDT 2012
Im getting segmentation faults when I call PetscSectionSetChart, gdb
is telling me this:
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: 13 at address: 0x0000000000000000
0x00000001005f9585 in PetscTrFreeDefault (aa=0x4008000000000000,
line=296, function=0x1016bd470 "PetscSectionSetChart",
file=0x1016bcbb8
"/Users/christina/Desktop/COLIN/Work/petsc-dev/src/vec/vec/impls/seq/vsection.c", dir=0x1016bca50
"")
at /Users/christina/Desktop/COLIN/Work/petsc-dev/src/sys/memory/mtr.c:279
279 if (head->classid != CLASSID_VALUE) {
(gdb) ba
#0 0x00000001005f9585 in PetscTrFreeDefault (aa=0x4008000000000000,
line=296, function=0x1016bd470 "PetscSectionSetChart",
file=0x1016bcbb8
"/Users/christina/Desktop/COLIN/Work/petsc-dev/src/vec/vec/impls/seq/vsection.c", dir=0x1016bca50
"")
at /Users/christina/Desktop/COLIN/Work/petsc-dev/src/sys/memory/mtr.c:279
#1 0x000000010075120b in PetscSectionSetChart (s=0x102e06910,
pStart=1, pEnd=0)
at
/Users/christina/Desktop/COLIN/Work/petsc-dev/src/vec/vec/impls/seq/vsection.c:296
#2 0x00000001006e99f3 in petscsectionsetchart_ (s=0x7fff5fbfee38,
pStart=0x10165bc1c, pEnd=0x10165bc18, __ierr=0x7fff5fbfee4c)
at
/Users/christina/Desktop/COLIN/Work/petsc-dev/src/vec/vec/impls/seq/ftn-auto/vsectionf.c:148
#3 0x0000000100020c4c in setfs_ (fsind=<value temporarily
unavailable, due to optimizations>,
numfields=<value temporarily unavailable, due to optimizations>)
at umacr8.F:96
Also, calling:
call PetscSectionCreate(PETSC_COMM_WORLD,sec,ierr)
call PetscSectionGetChart(sec,pStart,pEnd,ierr)
returns pStart = 1 and pEnd = 0. Shouldn't PetscSectionCreate set
pStart and pEnd to -1 and -1?
I am a bit stumped here, any idea what is going on?
thanks
Colin
Quoting Matthew Knepley <knepley at gmail.com>:
> On Mon, Aug 20, 2012 at 7:47 AM, Colin McAuliffe <cjm2176 at columbia.edu>wrote:
>
>> I am just not seeing where in the section such an IS would go. As far as I
>> can tell from the functions in vsection.c, the only item in the section
>> which is an IS is bcIndices, defining points where bcs are applied.
>>
>
> If you have no structure other than dof, you can make a Section where the
> points
> just number dofs. Then you just run through the ints p in your IS can call
>
> PetscSectionSetDof(section, p, 1)
>
> Then PetscSectionSetUp(). Stick this in a DMSHELL, or really any DM you
> want,
> and FS will use it.
>
> Matt
>
>
>> 38 ierr = PetscNew(struct _n_PetscSection, s);CHKERRQ(ierr);
>> 39 (*s)->atlasLayout.comm = comm;
>> 40 (*s)->atlasLayout.pStart = -1;
>> 41 (*s)->atlasLayout.pEnd = -1;
>> 42 (*s)->atlasLayout.numDof = 1;
>> 43 (*s)->atlasDof = PETSC_NULL;
>> 44 (*s)->atlasOff = PETSC_NULL;
>> 45 (*s)->bc = PETSC_NULL;
>> 46 (*s)->bcIndices = PETSC_NULL;
>> 47 (*s)->setup = PETSC_FALSE;
>> 48 (*s)->numFields = 0;
>> 49 (*s)->fieldNames = PETSC_NULL;
>> 50 (*s)->field = PETSC_NULL;
>>
>> Quoting Matthew Knepley <knepley at gmail.com>:
>>
>> On Mon, Aug 20, 2012 at 7:17 AM, Colin McAuliffe <cjm2176 at columbia.edu
>>> >wrote:
>>>
>>> Yes, just call DMSetDefaultSection(). However, note that you will have
>>>>
>>>>> everything sized
>>>>> correctly, but handling topology and iteration for the residual
>>>>> calculation
>>>>> would be completely
>>>>> up to you.
>>>>>
>>>>> Matt
>>>>>
>>>>>
>>>> It would be really great to define the initial data layout using IS to
>>>> define the equation numbers of the splits, while letting the new DM stuff
>>>> handle creating all the nested splits given command line options. Is
>>>> something like this possible?
>>>>
>>>>
>>> This is just what I say above. Is something not working?
>>>
>>> Matt
>>>
>>>
>>> Colin
>>>>
>>>> Quoting Matthew Knepley <knepley at gmail.com>:
>>>>
>>>> On Mon, Aug 13, 2012 at 4:06 PM, Colin McAuliffe <cjm2176 at columbia.edu
>>>>
>>>>> >wrote:
>>>>>
>>>>> No, No, No. You do not have to write a DM implementation.
>>>>>
>>>>>>
>>>>>>
>>>>>>> You just have to define the data layout in a PetscSection and attach
>>>>>>> it
>>>>>>> to
>>>>>>> the DM with DMSetDefaultSection.
>>>>>>>
>>>>>>> Matt
>>>>>>>
>>>>>>>
>>>>>>> Does use of the PetscSection mean that it is neccesary to define a
>>>>>> DMMesh?
>>>>>> In other
>>>>>> words is there a way to create the data layout for the physics without
>>>>>> having to specify
>>>>>> any information about the mesh?
>>>>>>
>>>>>>
>>>>>> Yes, just call DMSetDefaultSection(). However, note that you will have
>>>>> everything sized
>>>>> correctly, but handling topology and iteration for the residual
>>>>> calculation
>>>>> would be completely
>>>>> up to you.
>>>>>
>>>>> Matt
>>>>>
>>>>>
>>>>> Thanks
>>>>>
>>>>>> Colin
>>>>>>
>>>>>>
>>>>>>
>>>>>> Quoting Matthew Knepley <knepley at gmail.com>:
>>>>>>
>>>>>> On Thu, Aug 9, 2012 at 10:22 AM, Dmitry Karpeev <karpeev at mcs.anl.gov>
>>>>>>
>>>>>> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Aug 9, 2012 at 10:02 AM, Colin McAuliffe <
>>>>>>>> cjm2176 at columbia.edu
>>>>>>>> >wrote:
>>>>>>>>
>>>>>>>> Sanjay, thanks for the reply but I am avoiding using blocked format
>>>>>>>>
>>>>>>>> since
>>>>>>>>> my problem has 10 dofs per node but only has either dofs 1-3 or 4-10
>>>>>>>>> active
>>>>>>>>> on a particular node. If I use block the equations I run out of
>>>>>>>>> memory
>>>>>>>>> pretty quickly on my machine but can get to reasonable sized
>>>>>>>>> problems
>>>>>>>>> with
>>>>>>>>> the unblocked format.
>>>>>>>>>
>>>>>>>>> Matt, sorry I am not getting this, but I am still not sure how the
>>>>>>>>> DM
>>>>>>>>> interface works. I can see in the function PCFieldSplitSetDefaults
>>>>>>>>> that
>>>>>>>>> there is an initial call to DMCreateFieldDecomposition and
>>>>>>>>> subsequent
>>>>>>>>> calls
>>>>>>>>> to DMCreateSubDM based on the command line options. What I am
>>>>>>>>> missing
>>>>>>>>> is
>>>>>>>>> how the first call to DMCreateFieldDecomposition is able to figure
>>>>>>>>> out
>>>>>>>>> which equations belong to which field just from command line info
>>>>>>>>> such
>>>>>>>>> as
>>>>>>>>> -pc_fieldsplit_0_fields 2,0. Where/how are the fields 2 and 0
>>>>>>>>> defined?
>>>>>>>>>
>>>>>>>>> This might change slightly in the near future in petsc-dev to allow
>>>>>>>>>
>>>>>>>>> one to
>>>>>>>> define splits using named fields.
>>>>>>>> In any event, there has to be DM support to implement the
>>>>>>>> decompositions
>>>>>>>> over a particular mesh/problem over that mesh.
>>>>>>>> With DMDA you can essentially get combinations of strided fields in
>>>>>>>> each
>>>>>>>> split. DMCOMPOSITE allows you
>>>>>>>> to pull out combinations of the subproblems that were put in there to
>>>>>>>> begin with. If you have your own mesh, you have to write
>>>>>>>> a DM implementation around it to expose the available fields.
>>>>>>>>
>>>>>>>>
>>>>>>>> No, No, No. You do not have to write a DM implementation.
>>>>>>>>
>>>>>>>
>>>>>>> You just have to define the data layout in a PetscSection and attach
>>>>>>> it
>>>>>>> to
>>>>>>> the DM with DMSetDefaultSection.
>>>>>>>
>>>>>>> Matt
>>>>>>>
>>>>>>>
>>>>>>> Dmitry.
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Colin
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Quoting Matthew Knepley <knepley at gmail.com>:
>>>>>>>>>
>>>>>>>>> On Thu, Aug 9, 2012 at 9:21 AM, Sanjay Govindjee <s_g at berkeley.edu
>>>>>>>>> >
>>>>>>>>>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Colin,
>>>>>>>>>>
>>>>>>>>>> I you block the equations in FEAP, then the restrained BCs are
>>>>>>>>>>
>>>>>>>>>>> 'included' in assembled PETSc matrix (these dofs have rows that
>>>>>>>>>>> are
>>>>>>>>>>> zero
>>>>>>>>>>> modulo a value of unity on the diagonal and the restrained value
>>>>>>>>>>> on
>>>>>>>>>>> the
>>>>>>>>>>> right-hand side).
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> However, this is not necessary with the DM interface.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> Matt
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -sg
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 8/9/12 8:41 AM, Colin McAuliffe wrote:
>>>>>>>>>>>
>>>>>>>>>>> From what I can gather from the petsc-dev source it looks like
>>>>>>>>>>> the
>>>>>>>>>>>
>>>>>>>>>>> commands in 4) will then generate the splits using strided
>>>>>>>>>>> blocks.
>>>>>>>>>>>
>>>>>>>>>>>> The
>>>>>>>>>>>> problem with that is the fortran code I am using (FEAP) uses
>>>>>>>>>>>> petsc
>>>>>>>>>>>> to
>>>>>>>>>>>> assemble and solve the linear problem within its own nonlinear
>>>>>>>>>>>> and
>>>>>>>>>>>> time
>>>>>>>>>>>> stepping schemes. The linear problem that petsc solves already
>>>>>>>>>>>> has
>>>>>>>>>>>> boundary
>>>>>>>>>>>> conditions applied to it so petsc only sees the active
>>>>>>>>>>>> (unrestrained)
>>>>>>>>>>>> equations. So then in general fields can't be extracted from the
>>>>>>>>>>>> active
>>>>>>>>>>>> equations using strided blocks and I am stuck with generating the
>>>>>>>>>>>> index
>>>>>>>>>>>> sets defining the splits on my own. Will it still be possible to
>>>>>>>>>>>> make
>>>>>>>>>>>> use
>>>>>>>>>>>> of the new DM functions in this case?
>>>>>>>>>>>>
>>>>>>>>>>>> FEAP website:
>>>>>>>>>>>> http://www.ce.berkeley.edu/**********projects/feap/<http://www.ce.berkeley.edu/********projects/feap/>
>>>>>>>>>>>> <http://**www.ce.berkeley.edu/********projects/feap/<http://www.ce.berkeley.edu/******projects/feap/>
>>>>>>>>>>>> >
>>>>>>>>>>>> <http://www.**ce.berkeley.edu/******projects/**feap/<http://ce.berkeley.edu/****projects/**feap/>
>>>>>>>>>>>> <http://**www.ce.berkeley.edu/******projects/feap/<http://www.ce.berkeley.edu/****projects/feap/>
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>> <http://www.ce.**berkeley.edu/******projects/feap/<http://berkeley.edu/****projects/feap/>
>>>>>>>>>>>> <http://**berkeley.edu/**projects/feap/<http://berkeley.edu/**projects/feap/>
>>>>>>>>>>>> >
>>>>>>>>>>>> <http://www.**ce.berkeley.edu/****projects/**feap/<http://ce.berkeley.edu/**projects/**feap/>
>>>>>>>>>>>> <http://www.**ce.berkeley.edu/**projects/**feap/<http://www.ce.berkeley.edu/**projects/feap/>
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>> <http://www.ce.**berkeley.edu/******projects/feap/<http://berkeley.edu/****projects/feap/>
>>>>>>>>>>>> <http://**berkeley.edu/**projects/feap/<http://berkeley.edu/**projects/feap/>
>>>>>>>>>>>> >
>>>>>>>>>>>> <http://**berkeley.edu/**projects/feap/<http://berkeley.edu/projects/feap/>
>>>>>>>>>>>> <http://**berkeley.edu/projects/feap/<http://berkeley.edu/projects/feap/>
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>> <http://www.ce.**berkeley.edu/****projects/feap/<http://berkeley.edu/**projects/feap/>
>>>>>>>>>>>> <http://**berkeley.edu/projects/feap/<http://berkeley.edu/projects/feap/>
>>>>>>>>>>>> >
>>>>>>>>>>>> <http://www.ce.**berkeley.edu/**projects/feap/<http://berkeley.edu/projects/feap/>
>>>>>>>>>>>> <http://www.ce.**berkeley.edu/projects/feap/<http://www.ce.berkeley.edu/projects/feap/>
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Colin
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Quoting Matthew Knepley <knepley at gmail.com>:
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Aug 8, 2012 at 10:51 PM, Matthew Knepley <
>>>>>>>>>>>> knepley at gmail.com
>>>>>>>>>>>> >
>>>>>>>>>>>>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> On Wed, Aug 8, 2012 at 10:23 PM, Colin McAuliffe <
>>>>>>>>>>>>> cjm2176 at columbia.edu
>>>>>>>>>>>>>
>>>>>>>>>>>>> >wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks all, regarding use of DM in 3.3, is the procedure now
>>>>>>>>>>>>>> to
>>>>>>>>>>>>>> create
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> the fields with PCFieldSplitSetIS and then use
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> DMCreateFieldDecompositionDM
>>>>>>>>>>>>>>> to create a new DM based from the new fields and the DM for
>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>> original
>>>>>>>>>>>>>>> problem?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 1) Use petsc-dev
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 2) PCFieldSplitSetIS() is independent. This allows you to
>>>>>>>>>>>>>> define
>>>>>>>>>>>>>> splits
>>>>>>>>>>>>>> however you want, but then recursive gets harder
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 3) In 3.3., it uses DMCreateFieldDecompositionDM() to split all
>>>>>>>>>>>>>> fields
>>>>>>>>>>>>>> apart at once
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 4) In petsc-dev, it uses DMCreateSubDM() which can split off
>>>>>>>>>>>>>> any
>>>>>>>>>>>>>> combination of fields, which from the command line is something
>>>>>>>>>>>>>> like
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -pc_fieldsplit_0_fields 2,0 -pc_fieldsplit_1_fields 1,3
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I should have shown recursive:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -fieldsplit_0_pc_type fieldsplit
>>>>>>>>>>>>>
>>>>>>>>>>>>> will split 2,0 into two blocks.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Matt
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Matt
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Colin
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Colin McAuliffe
>>>>>>>>>>>>>>> PhD Candidate
>>>>>>>>>>>>>>> Columbia University
>>>>>>>>>>>>>>> Department of Civil Engineering and Engineering Mechanics
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> What most experimenters take for granted before they begin
>>>>>>>>>>>>>> their
>>>>>>>>>>>>>> experiments is infinitely more interesting than any results to
>>>>>>>>>>>>>> which
>>>>>>>>>>>>>> their
>>>>>>>>>>>>>> experiments lead.
>>>>>>>>>>>>>> -- Norbert Wiener
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>
>>>>>>>>>>>>> What most experimenters take for granted before they begin their
>>>>>>>>>>>>> experiments is infinitely more interesting than any results to
>>>>>>>>>>>>> which
>>>>>>>>>>>>> their
>>>>>>>>>>>>> experiments lead.
>>>>>>>>>>>>> -- Norbert Wiener
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>
>>>>>>>>>>>> ------------------------------**********-----------------
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Sanjay Govindjee, PhD, PE
>>>>>>>>>>> Professor of Civil Engineering
>>>>>>>>>>> Vice Chair for Academic Affairs
>>>>>>>>>>>
>>>>>>>>>>> 779 Davis Hall
>>>>>>>>>>> Structural Engineering, Mechanics and Materials
>>>>>>>>>>> Department of Civil Engineering
>>>>>>>>>>> University of California
>>>>>>>>>>> Berkeley, CA 94720-1710
>>>>>>>>>>>
>>>>>>>>>>> Voice: +1 510 642 6060
>>>>>>>>>>> FAX: +1 510 643 5264
>>>>>>>>>>> s_g at berkeley.edu
>>>>>>>>>>> http://www.ce.berkeley.edu/~**********sanjay<http://www.ce.berkeley.edu/~********sanjay>
>>>>>>>>>>> <http://www.ce.**berkeley.edu/~******sanjay<http://www.ce.berkeley.edu/~******sanjay>
>>>>>>>>>>> >
>>>>>>>>>>> <http://www.ce.**berkeley.edu/**~****sanjay<http://berkeley.edu/~****sanjay>
>>>>>>>>>>> <http://www.ce.**berkeley.edu/~****sanjay<http://www.ce.berkeley.edu/~****sanjay>
>>>>>>>>>>> >
>>>>>>>>>>> >
>>>>>>>>>>> <http://www.ce.**berkeley.edu/****~**sanjay<http://berkeley.edu/**~**sanjay>
>>>>>>>>>>> <http://berkeley.**edu/~**sanjay <http://berkeley.edu/~**sanjay>>
>>>>>>>>>>> <http://www.ce.**berkeley.edu/**~**sanjay<http://berkeley.edu/~**sanjay>
>>>>>>>>>>> <http://www.ce.**berkeley.edu/~**sanjay<http://www.ce.berkeley.edu/~**sanjay>
>>>>>>>>>>> >
>>>>>>>>>>> >
>>>>>>>>>>> ><
>>>>>>>>>>> http://www.ce.berkeley.edu/~********sanjay<http://www.ce.berkeley.edu/~******sanjay>
>>>>>>>>>>> <http://www.ce.**berkeley.edu/~****sanjay<http://www.ce.berkeley.edu/~****sanjay>
>>>>>>>>>>> >
>>>>>>>>>>> <http://www.ce.**berkeley.edu/**~**sanjay<http://berkeley.edu/~**sanjay>
>>>>>>>>>>> <http://www.ce.**berkeley.edu/~**sanjay<http://www.ce.berkeley.edu/~**sanjay>
>>>>>>>>>>> >
>>>>>>>>>>> >
>>>>>>>>>>> <http://www.ce.berkeley.**edu/****~sanjay<http://www.ce.**
>>>>>>>>>>> berkeley.edu/~sanjay
>>>>>>>>>>> <http://www.ce.berkeley.edu/~**sanjay<http://www.ce.berkeley.edu/~sanjay>
>>>>>>>>>>> >>
>>>>>>>>>>> >
>>>>>>>>>>> >
>>>>>>>>>>> ------------------------------**********-----------------
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>>
>>>>>>>>>> What most experimenters take for granted before they begin their
>>>>>>>>>> experiments is infinitely more interesting than any results to
>>>>>>>>>> which
>>>>>>>>>> their
>>>>>>>>>> experiments lead.
>>>>>>>>>> -- Norbert Wiener
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>> Colin McAuliffe
>>>>>>>>> PhD Candidate
>>>>>>>>> Columbia University
>>>>>>>>> Department of Civil Engineering and Engineering Mechanics
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>> What most experimenters take for granted before they begin their
>>>>>>> experiments is infinitely more interesting than any results to which
>>>>>>> their
>>>>>>> experiments lead.
>>>>>>> -- Norbert Wiener
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> --
>>>>>> Colin McAuliffe
>>>>>> PhD Candidate
>>>>>> Columbia University
>>>>>> Department of Civil Engineering and Engineering Mechanics
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> What most experimenters take for granted before they begin their
>>>>> experiments is infinitely more interesting than any results to which
>>>>> their
>>>>> experiments lead.
>>>>> -- Norbert Wiener
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> Colin McAuliffe
>>>> PhD Candidate
>>>> Columbia University
>>>> Department of Civil Engineering and Engineering Mechanics
>>>>
>>>>
>>>
>>>
>>> --
>>> What most experimenters take for granted before they begin their
>>> experiments is infinitely more interesting than any results to which their
>>> experiments lead.
>>> -- Norbert Wiener
>>>
>>>
>>
>>
>> --
>> Colin McAuliffe
>> PhD Candidate
>> Columbia University
>> Department of Civil Engineering and Engineering Mechanics
>>
>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> -- Norbert Wiener
>
--
Colin McAuliffe
PhD Candidate
Columbia University
Department of Civil Engineering and Engineering Mechanics
More information about the petsc-users
mailing list