[petsc-users] Mass matrix with PetscFE
Julian Andrej
juan at tf.uni-kiel.de
Wed Feb 24 06:47:59 CST 2016
Hi,
i'm trying to assemble a mass matrix with the PetscFE/DMPlex interface.
I found something in the examples of TAO
https://bitbucket.org/petsc/petsc/src/da8116b0e8d067e39fd79740a8a864b0fe207998/src/tao/examples/tutorials/ex3.c?at=master&fileviewer=file-view-default
but using the lines
DMClone(dm, &dm_mass);
DMSetNumFields(dm_mass, 1);
DMPlexCopyCoordinates(dm, dm_mass);
DMGetDS(dm_mass, &prob_mass);
PetscDSSetJacobian(prob_mass, 0, 0, mass_kernel, NULL, NULL, NULL);
PetscDSSetDiscretization(prob_mass, 0, (PetscObject) fe);
DMPlexSNESComputeJacobianFEM(dm_mass, u, M, M, NULL);
DMCreateMatrix(dm_mass, &M);
leads to errors in DMPlexSNESComputeJacobianFEM (u is a global vector).
I don't can understand the necessary commands until
DMPlexSNESComputeJacobianFEM. What does it do and why is it necessary?
(especially why does the naming involve SNES?)
Is there another/easier/better way to create a mass matrix (the inner
product of the function space and the test space)?
Regards
Julian Andrej
More information about the petsc-users
mailing list