[petsc-users] Field split questions
Colin McAuliffe
cjm2176 at columbia.edu
Mon Aug 20 07:47:12 CDT 2012
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.
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://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://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://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
More information about the petsc-users
mailing list