[petsc-users] PETSCFE_CLASSID/PETSCVF_CLASSID
Nicolas Barral
nicolas.barral at math.u-bordeaux.fr
Sat Dec 12 05:07:35 CST 2020
Thanks Matt and Jacob,
There's still something not working yet, but I'm trying to build a MFE
before asking.
Matt, what you say is consistent with plex/tutorials/ex8.c, but not with
DMAdaptorAdapt_Sequence_Private. Does that mean that the latter is broken ?
Thanks
--
Nicolas
On 11/12/2020 18:39, Matthew Knepley wrote:
> On Fri, Dec 11, 2020 at 12:02 PM Nicolas Barral
> <nicolas.barral at math.u-bordeaux.fr
> <mailto:nicolas.barral at math.u-bordeaux.fr>> wrote:
>
> Hi all (and probably more specifically Matt ?)
>
> I am trying to understand how the class IDs of a DM field are set, and
> can't find it in the documentation.
>
> A little background, I am mimicking
> SNES/utils/dmadapt.c/DMAdaptorAdapt_Sequence_Private for a specific
> case
> (I'm trying to build the same kind of metric from a single sensor
> field,
> without all the SNES layer).
>
> I need to compute the gradient of the sensor field, using
> DMPlexComputeGradientClementInterpolant, for which I create a DM, to
> which I associate a PetscFE, a DS, like in existing code:
>
> PetscFE feGrad
> PetscDS probGrad
>
> ierr = PetscFECreateDefault(PetscObjectComm((PetscObject) dmGrad), dim,
> coordDim, PETSC_TRUE, NULL, -1, &feGrad);CHKERRQ(ierr);
> ierr = PetscDSSetDiscretization(probGrad, f, (PetscObject)
> feGrad);CHKERRQ(ierr);
>
>
> Jacobi is correct, so let me give the history. Originally, you were to
> call PetscDSSetDiscretization() as you have done.
> However, now it is possible to have different discretization within the
> same domain, So now we want you to call
> DMAddField(dm, feGrad), and then DMCreateDS(), which will
> call PetscDSSetDiscretization() for you. I changed the
> examples, but I did not have another place to document this.
>
> Thanks,
>
> Matt
>
> ierr = PetscFEDestroy(&feGrad);CHKERRQ(ierr);
>
> Yet, when I call DMPlexComputeGradientClementInterpolant, I get the
> following error:
> [0]PETSC ERROR: Unknown discretization type for field 0
>
> I don't fully understand what all these objects are (FE, DS and Field),
> and how they are related, where would that be documented ?
> And what else do I need to do to make my example work ?
>
> Thanks
>
> --
> Nicolas
>
>
>
> --
> 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/>
More information about the petsc-users
mailing list