[petsc-users] Fwd: Inquiry about the dual space (PetscFECreateTabulation_Basic)
neil liu
liufield at gmail.com
Fri Apr 21 11:37:50 CDT 2023
Thanks a lot. Very helpful.
On Fri, Apr 21, 2023 at 10:57 AM Matthew Knepley <knepley at gmail.com> wrote:
> On Fri, Apr 21, 2023 at 10:36 AM neil liu <liufield at gmail.com> wrote:
>
>> When you say "For multicomponent spaces, we currently do not represent it
>> as a tensor product over the scalar space, so we see 6 basis vectors."
>> Here, muticomponent = two dimensional ?
>>
>
> If you have a vector in a two-dimensional space, it has 2 components, like
> our coordinate vector.
>
>
>> I am a little confused about the dimensions of the basis functions here.
>> From
>> https://petsc.org/release//src/dm/dt/fe/impls/basic/febasic.c.html#PETSCFEBASIC
>>
>> 144: /* B[npoints, nodes, Nc] = tmpB[npoints, prime, Nc] * invV[prime, nodes] */
>>
>> How do you define tmpB here (npoints =3, prime =6, Nc =2)? I can get tmpB from
>>
>> PetscSpaceEvaluate_Polynomial, where, tmpB (1x9) is (the prime polynomial is defined by 1 x y))
>>
>> [ 1 -0.6667 -0.6667 1 -0.6667 0.3333 1 0.3333 -0.6666]. How do you transform from this 1x9 to 3x6x2 there.
>>
>>
> npoints is the number of quadrature points at which to evaluate
>
> nodes (pdim) is the number of functions in the space
>
> Nc is the number of components for each function.
>
> So a P1 basis for vectors looks like
>
> / 1 \ / 0 \ / x \ / 0 \ / y \ / 0 \
> \ 0 / \ 1 / \ 0 / \ x / \ 0 / \ y /
>
> six vectors with 2 components each.
>
> Thanks,
>
> Matt
>
>> Thanks,
>>
>> Xiaodong
>>
>>
>>
>>
>>
>>
>> On Fri, Apr 21, 2023 at 10:05 AM Matthew Knepley <knepley at gmail.com>
>> wrote:
>>
>>> On Fri, Apr 21, 2023 at 10:02 AM neil liu <liufield at gmail.com> wrote:
>>>
>>>> Hello, Petsc group,
>>>>
>>>> I am learning the FE structure in Petsc by running case
>>>> https://petsc.org/main/src/snes/tutorials/ex12.c.html with -run_type
>>>> test -bc_type dirichlet -dm_plex_interpolate 0 -petscspace_degree 1
>>>> -show_initial -dm_plex_print_fem 1
>>>>
>>>
>>> -dm_plex_print_fem 5 will print much more
>>>
>>>
>>>> When I check the subroutine PetscFECreateTabulation_Basic, I can not
>>>> understand some parameters there.
>>>>
>>>> For the following lines in the file (
>>>> https://petsc.org/release//src/dm/dt/fe/impls/basic/febasic.c.html#PETSCFEBASIC
>>>> )
>>>>
>>>> 135: PetscCall <https://petsc.org/release//manualpages/Sys/PetscCall/>(PetscDualSpaceGetDimension <https://petsc.org/release//manualpages/DUALSPACE/PetscDualSpaceGetDimension/>(fem->dualSpace, &pdim));136: PetscCall <https://petsc.org/release//manualpages/Sys/PetscCall/>(PetscFEGetNumComponents <https://petsc.org/release//manualpages/FE/PetscFEGetNumComponents/>(fem, &Nc));
>>>>
>>>> Here, Nc = 2, pdim =6. I am running a scalar case with degree of 1,
>>>>
>>>> I expect Nc = 1 and pdim =3. Could you please explain this? In addition,
>>>>
>>>> Sure. I am guessing that you are looking at the tabulation for the
>>> coordinate space. Here you are in 2 dimensions, so the
>>> coordinate space has Nc = 2. For multicomponent spaces, we currently do
>>> not represent it as a tensor product over the
>>> scalar space, so we see 6 basis vectors.
>>>
>>> Thanks,
>>>
>>> Matt
>>>
>>>> Thanks,
>>>>
>>>> Xiaodong
>>>>
>>>>
>>>>
>>>>
>>>
>>> --
>>> 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
>>>
>>> https://www.cse.buffalo.edu/~knepley/
>>> <http://www.cse.buffalo.edu/~knepley/>
>>>
>>
>
> --
> 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
>
> https://www.cse.buffalo.edu/~knepley/
> <http://www.cse.buffalo.edu/~knepley/>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20230421/a308748f/attachment.html>
More information about the petsc-users
mailing list