On Fri, Apr 21, 2023 at 10:02 AM neil liu <liufi...@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/>