PetscErrorCode RHSFunctionHeat(TS ts,PetscReal t,Vec globalin,Vec globalout,void *ctx) { PetscErrorCode ierr; Mat A; PetscFunctionBeginUser; ierr = TSGetRHSJacobian(ts,&A,NULL,NULL,&ctx);CHKERRQ(ierr); ierr = RHSMatrixHeat(ts,t,globalin,A,NULL,ctx);CHKERRQ(ierr); /* ierr = MatView(A,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); */ ierr = MatMult(A,globalin,globalout);CHKERRQ(ierr); PetscFunctionReturn(0); }
PetscErrorCode RHSFunctionHeat(TS ts,PetscReal t,Vec globalin,Vec globalout,void *ctx) { PetscErrorCode ierr; Mat A; MatStructure A_structure; PetscFunctionBegin; ierr = TSGetMatrices(ts,&A,PETSC_NULL,&ctx);CHKERRQ(ierr); ierr = RHSMatrixHeat(ts,t,&A,PETSC_NULL,&A_structure,ctx);CHKERRQ(ierr); /* ierr = MatView(A,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr); */ ierr = MatMult(A,globalin,globalout);CHKERRQ(ierr); PetscFunctionReturn(0); }