Thank you Barry. -Ling
From: Barry Smith <[email protected]> Date: Monday, January 10, 2022 at 5:13 PM To: Zou, Ling <[email protected]> Cc: PETSc <[email protected]> Subject: Re: [petsc-users] A problem with MatFDColoringSetFunction This is annoying. You need to pass in a compiler flag to turn off the error conditioner for casting a function pointer. It may be -Wnoerror=cast-function-type just google. Barry On Jan 10, 2022, at 4:35 PM, Zou, Ling via petsc-users <[email protected]<mailto:[email protected]>> wrote: Hi All, I would appreciate if you could give some advice for setting the ‘FormFunction’ for the MatFDColoringSetFunction function call. I follow what is shown in the example: https://petsc.org/release/src/snes/tutorials/ex14.c.html I setup similar code structure like: PetscErrorCode FormFunction(SNES,Vec,Vec,void*); Then use it as: MatFDColoringSetFunction(fdcoloring, (PetscErrorCode(*)(void))SNESFormFunction, this); This works fine on my local MacOS. However, when commit it to a remote repo, the compiler there gives me the following error (where warnings are treated as errors): src/base/PETScProblemInterface.C:100:67: error: cast between incompatible function types from 'PetscErrorCode (*)(SNES, Vec, Vec, void*)' {aka 'int (*)(_p_SNES*, _p_Vec*, _p_Vec*, void*)'} to 'PetscErrorCode (*)()' {aka 'int (*)()'} [-Werror=cast-function-type] Any help is appreciated. -Ling
