Hello everyone, Thank you for your answer Jed.
Le lun. 17 janv. 2022 à 15:52, Jed Brown <[email protected]> a écrit : > Thibault Bridel-Bertomeu <[email protected]> writes: > > > Hi everyone, > > > > I was wondering if it was possible to build a solver based on PetscFV > > without using ghost cells for the boundary conditions ? > > Would it be possible to call PetscDSAddBoundary with DM_BC_ESSENTIAL and > so > > on instead of DM_BC_NATURAL_RIEMANN ? > > Are you thinking this sets the value in a ghost cell or the value in a > cell adjacent to the domain? For the former, the value in a ghost cell must > typically be set to a (nonlinear for nonlinear PDE) function of the value > in the adjacent cell to implement desired BCs. > Sorry I wasn't clear I think. I was thinking that for finite volume codes, you have two options: either you use ghost cells that you fill up with the appropriate primitive state for the boundary condition, or you directly enforce the boundary condition at the face. In the PetscFV examples, the DM_BC_NATURAL_RIEMANN type of boundary condition with ghost cells is always used, but what about _not_ generating the ghost cells and using a DM_BC_ESSENTIAL to enforce the boundary condition directly at the face (or at the quadrature points on the face if you will) ? > > > Mostly in the case of an hybrid problem with FVM and FEM (like for > instance > > ex18.c from the TS tutorials), it would make sense that the boundaries > > shared by the two discretizations be set at the same locations, i.e. for > > FEM the quadrature points, wouldn't it ? > > You either have a surface integral (NATURAL boundary condition, with the > integrand specified at quadrature points) or an ESSENTIAL condition, which > is implemented nodally (with some lifting for non-Lagrange bases). >
