[petsc-users] Fwd: Inquiry about the dual space (PetscFECreateTabulation_Basic)

neil liu liufield at gmail.com
Fri Apr 21 09:36:34 CDT 2023

```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 ?
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.

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