Dear PETSc developers,

I have a DMPlex DM with 1 field 1dof. I'd like to output a vector with block 
size equals to 3. It seems that there is no response using command line option 
or using some code about PetscViewer.

The DM is generated with (note that I'm not using PetscFE for discretization, 
just for allocate dof.)
PetscCall(DMPlexCreateExodusFromFile(PETSC_COMM_WORLD,"tube.exo",interpolate,&dm));
PetscCall(PetscFECreateLagrange(PETSC_COMM_SELF,dim,1,PETSC_TRUE,1,PETSC_DETERMINE,&fe));
PetscCall(PetscObjectSetName((PetscObject)fe,"potential_field"));
PetscCall(DMSetField(dm,0,NULL,(PetscObject)fe));
PetscCall(DMPlexDistribute(dm,0,&sf,&dmParallel));

The Vector is created using
PetscCall(DMCreateGlobalVector(dm,&phi_1));
PetscCall(VecSetLocalToGlobalMapping(phi_1,Itog));
PetscCall(VecGetLocalSize(phi_1,&vec_local_size_test));
PetscCall(VecCreateMPI(PETSC_COMM_WORLD, vec_local_size_test*3, 
PETSC_DETERMINE, &u_grad_psi));
PetscCall(VecSetBlockSize(u_grad_psi, 3));
PetscCall(VecSetLocalToGlobalMapping(u_grad_psi,Itog));

The output command line option is just --vec_view vtk:test.vtk. The PETSc 
version I'm using is 3.19.5.

Could you please give me some advice?

Best Regards,
Yujie

Reply via email to