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 <[email protected]> wrote: > On Fri, Apr 21, 2023 at 10:02 AM neil liu <[email protected]> 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/> >
