Thanks a lot. Very helpful. On Fri, Apr 21, 2023 at 10:57 AM Matthew Knepley <knep...@gmail.com> wrote:
> On Fri, Apr 21, 2023 at 10:36 AM neil liu <liufi...@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 <knep...@gmail.com> >> wrote: >> >>> 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/> >>> >> > > -- > 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/> >