Make sure that you are using the latest PETSc if at all possible Also copy over a makefile from the cg directory (you do not need to edit any makefiles)
You also need to add it to KSPRegisterAll() You will need to do make clean before running make all to compiler your new code. Barry > On Jun 25, 2024, at 1:11 PM, Matthew Knepley <[email protected]> wrote: > > This Message Is From an External Sender > This message came from outside your organization. > On Tue, Jun 25, 2024 at 12:05 PM Julien BRUCHON via petsc-users > <[email protected] <mailto:[email protected]>> wrote: >> This Message Is From an External Sender >> This message came from outside your organization. >> >> Hi, >> >> Based on 'cg.c', I'm trying to develop my own Krylov solver (a projected >> conjugate gradient). I want to integrate this into my C++ code, where I >> already have an interface for PETSC which works well. However, I have the >> following questions : >> >> - Where am I sensed to put my 'cg_projected.c' and 'pcgimpl.h' files? Should >> they go in a directory petsc/src/ksp/ksp/impls/pcg/? If so, how do I compile >> that? Is it simply by adding this directory to the Makefile in >> petsc/src/ksp/ksp/impls/? > > Yes. > > Thanks, > > Matt > >> - I have also tried the basic approach of putting these two files in >> directories of my own C++ code and compiling. However, I have this error at >> the link edition: >> [100%] Linking CXX shared library libcoeur.so >> <https://urldefense.us/v3/__http://libcoeur.so/__;!!G_uCfscf7eWS!YdfbFMzwUYFerTqmfdwOGaPcudU8m_JVVuuMI9-wko7kKcOqgNi_xiJZC-uQ6hpwAtBdhocY_wzknRHkH4wv_nQ$ >> > >> /usr/bin/ld: src/solvers/libsolvers.a(cg_projected.c.o): warning: relocation >> against `petscstack' in read-only section `.text' >> /usr/bin/ld: src/solvers/libsolvers.a(cg_projected.c.o): relocation >> R_X86_64_PC32 against symbol `petscstack' can not be used when making a >> shared object; recompilé avec -fPIC >> /usr/bin/ld : échec de l'édition de liens finale : bad value >> collect2: error: ld returned 1 exit status >> make[2]: *** [CMakeFiles/coeur.dir/build.make:121 : libcoeur.so >> <https://urldefense.us/v3/__http://libcoeur.so/__;!!G_uCfscf7eWS!YdfbFMzwUYFerTqmfdwOGaPcudU8m_JVVuuMI9-wko7kKcOqgNi_xiJZC-uQ6hpwAtBdhocY_wzknRHkH4wv_nQ$ >> >] Erreur 1 >> make[1]: *** [CMakeFiles/Makefile2:286 : CMakeFiles/coeur.dir/all] Erreur 2 >> make: *** [Makefile:91 : all] Erreur 2 >> >> Could you please tell me what is the right way to proceed? >> >> Thank you, >> >> Julien >> -- >> Julien Bruchon >> Professeur IMT - Responsable du département MPE >> LGF - UMR CNRS 5307 - >> https://urldefense.us/v3/__https://www.mines-stetienne.fr/lgf/__;!!G_uCfscf7eWS!YdfbFMzwUYFerTqmfdwOGaPcudU8m_JVVuuMI9-wko7kKcOqgNi_xiJZC-uQ6hpwAtBdhocY_wzknRHk84A4kYM$ >> >> <https://urldefense.us/v3/__https://www.mines-stetienne.fr/lgf/__;!!G_uCfscf7eWS!dQgv-IRWC7OgdDf1X9Oew4nHSgleq2ty0AszuRPj70bBiFeCcT4RibQVAvv6FFeD081W1yY8IczRHAHopA0crg$> >> Mines Saint-Étienne, une école de l'Institut Mines-Télécom >> Librairie Éléments Finis Coeur >> <https://urldefense.us/v3/__https://gitlab.emse.fr/bruchon/Coeur/-/wikis/home__;!!G_uCfscf7eWS!dQgv-IRWC7OgdDf1X9Oew4nHSgleq2ty0AszuRPj70bBiFeCcT4RibQVAvv6FFeD081W1yY8IczRHAG6pz3FrQ$> >> 0477420072 > > > -- > 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://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!YdfbFMzwUYFerTqmfdwOGaPcudU8m_JVVuuMI9-wko7kKcOqgNi_xiJZC-uQ6hpwAtBdhocY_wzknRHk8zs6keo$ > > <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ZSMOgmxB-aRx34PmTC3s7ZkDC-zT09xxpmLjhj_vx8oVkTvDSORUOeoTe8ZdEFCHVCUxSrs3eOz346S6E1L_$>
