Installation problem with CalculiX-2.19 adapter

Hi everyone,

I met an installation problem about Calculix-2.19 adapter. Any help or advice would be greatly appreciated!!

Following the official tutorial, I get the following error at the end of the compilation:

gfortran -fopenmp -Wall -O3 -o bin/ccx_preCICE bin/ccx_2.19.o bin/ccx_2.19.a -L/work/ec055/ec055/yhuang94/Dependencies/SPOOLES.2.2/spooles.a -L/work/ec055/ec055/yhuang94/Dependencies/precice-2.4.0/lib64 -lprecice -lstdc++ -L/work/ec055/ec055/yhuang94/Dependencies/yaml-cpp-yaml-cpp-0.6.2/build -lyaml-cpp -L/work/ec055/ec055/yhuang94/Dependencies/ARPACK/libarpack_INTEL.a -lpthread -lm -lc
bin/ccx_2.19.a(arpack.o): In function arpack': arpack.c:(.text+0x16c5): undefined reference to dsaupd_’
arpack.c:(.text+0x1889): undefined reference to dsaupd_' arpack.c:(.text+0x199c): undefined reference to dseupd_’
arpack.c:(.text+0x3b3b): undefined reference to dnaupd_' arpack.c:(.text+0x53ce): undefined reference to dnaupd_’
arpack.c:(.text+0x5519): undefined reference to dneupd_' bin/ccx_2.19.a(arpackbu.o): In function arpackbu’:
arpackbu.c:(.text+0x1b85): undefined reference to dsaupd_' arpackbu.c:(.text+0x1c95): undefined reference to dsaupd_’
arpackbu.c:(.text+0x2743): undefined reference to dseupd_' bin/ccx_2.19.a(arpackcs.o): In function arpackcs’:
arpackcs.c:(.text+0x1be3): undefined reference to dsaupd_' arpackcs.c:(.text+0x1d1b): undefined reference to dsaupd_’
arpackcs.c:(.text+0x1edb): undefined reference to dnaupd_' arpackcs.c:(.text+0x2848): undefined reference to dnaupd_’
arpackcs.c:(.text+0xbe91): undefined reference to dseupd_' arpackcs.c:(.text+0xf236): undefined reference to dneupd_’
bin/ccx_2.19.a(spooles.o): In function factor': spooles.c:(.text+0x3c): undefined reference to DVfill’
spooles.c:(.text+0x4d): undefined reference to Graph_new' spooles.c:(.text+0x58): undefined reference to InpMtx_fullAdjacency’
spooles.c:(.text+0x64): undefined reference to IVL_tsize' spooles.c:(.text+0x84): undefined reference to Graph_init2’
spooles.c:(.text+0xaf): undefined reference to orderViaBestOfNDandMS' spooles.c:(.text+0xc1): undefined reference to ETree_oldToNewVtxPerm’
spooles.c:(.text+0xcd): undefined reference to IV_entries' spooles.c:(.text+0xda): undefined reference to ETree_newToOldVtxPerm’
spooles.c:(.text+0xea): undefined reference to ETree_permuteVertices' spooles.c:(.text+0xfd): undefined reference to InpMtx_permute’
spooles.c:(.text+0x10d): undefined reference to InpMtx_mapToUpperTriangle' spooles.c:(.text+0x11a): undefined reference to InpMtx_changeCoordType’
spooles.c:(.text+0x127): undefined reference to InpMtx_changeStorageMode' spooles.c:(.text+0x132): undefined reference to SymbFac_initFromInpMtx’
spooles.c:(.text+0x13a): undefined reference to FrontMtx_new' spooles.c:(.text+0x143): undefined reference to SubMtxManager_new’
spooles.c:(.text+0x156): undefined reference to SubMtxManager_init' spooles.c:(.text+0x18e): undefined reference to FrontMtx_init’
spooles.c:(.text+0x197): undefined reference to ChvManager_new' spooles.c:(.text+0x1a9): undefined reference to ChvManager_init’
spooles.c:(.text+0x1ba): undefined reference to IVfill' spooles.c:(.text+0x1ea): undefined reference to FrontMtx_factorInpMtx’
spooles.c:(.text+0x1f5): undefined reference to ChvManager_free' spooles.c:(.text+0x219): undefined reference to FrontMtx_postProcess’
spooles.c:(.text+0x221): undefined reference to IVL_free' spooles.c:(.text+0x229): undefined reference to InpMtx_free’
spooles.c:(.text+0x231): undefined reference to Graph_free' bin/ccx_2.19.a(spooles.o): In function fsolve’:
spooles.c:(.text+0x292): undefined reference to DenseMtx_permuteRows' spooles.c:(.text+0x297): undefined reference to DenseMtx_new’
spooles.c:(.text+0x2b8): undefined reference to DenseMtx_init' spooles.c:(.text+0x2c0): undefined reference to DenseMtx_zero’
spooles.c:(.text+0x2e4): undefined reference to FrontMtx_solve' spooles.c:(.text+0x2f0): undefined reference to DenseMtx_permuteRows’
spooles.c:(.text+0x2f8): undefined reference to DenseMtx_free' bin/ccx_2.19.a(spooles.o): In function factor_MT’:
spooles.c:(.text+0x34f): undefined reference to DVfill' spooles.c:(.text+0x354): undefined reference to Graph_new’
spooles.c:(.text+0x361): undefined reference to InpMtx_fullAdjacency' spooles.c:(.text+0x36c): undefined reference to IVL_tsize’
spooles.c:(.text+0x38d): undefined reference to Graph_init2' spooles.c:(.text+0x3b3): undefined reference to orderViaBestOfNDandMS’
spooles.c:(.text+0x3c5): undefined reference to ETree_oldToNewVtxPerm' spooles.c:(.text+0x3d1): undefined reference to IV_entries’
spooles.c:(.text+0x3dc): undefined reference to ETree_newToOldVtxPerm' spooles.c:(.text+0x3ec): undefined reference to ETree_permuteVertices’
spooles.c:(.text+0x3fa): undefined reference to InpMtx_permute' spooles.c:(.text+0x40a): undefined reference to InpMtx_mapToUpperTriangle’
spooles.c:(.text+0x417): undefined reference to InpMtx_changeCoordType' spooles.c:(.text+0x424): undefined reference to InpMtx_changeStorageMode’
spooles.c:(.text+0x42f): undefined reference to SymbFac_initFromInpMtx' spooles.c:(.text+0x43f): undefined reference to ETree_nfront’
spooles.c:(.text+0x456): undefined reference to DV_new' spooles.c:(.text+0x46a): undefined reference to DV_init’
spooles.c:(.text+0x4a2): undefined reference to ETree_ddMap' spooles.c:(.text+0x4c3): undefined reference to DV_free’
spooles.c:(.text+0x4c8): undefined reference to FrontMtx_new' spooles.c:(.text+0x4d1): undefined reference to SubMtxManager_new’
spooles.c:(.text+0x4e7): undefined reference to SubMtxManager_init' spooles.c:(.text+0x524): undefined reference to FrontMtx_init’
spooles.c:(.text+0x52d): undefined reference to ChvManager_new' spooles.c:(.text+0x547): undefined reference to ChvManager_init’
spooles.c:(.text+0x556): undefined reference to IVfill' spooles.c:(.text+0x58b): undefined reference to FrontMtx_MT_factorInpMtx’
spooles.c:(.text+0x59a): undefined reference to ChvManager_free' spooles.c:(.text+0x5c4): undefined reference to FrontMtx_postProcess’
spooles.c:(.text+0x5c9): undefined reference to SolveMap_new' spooles.c:(.text+0x5dd): undefined reference to FrontMtx_frontTree’
spooles.c:(.text+0x5f5): undefined reference to FrontMtx_lowerBlockIVL' spooles.c:(.text+0x603): undefined reference to FrontMtx_upperBlockIVL’
spooles.c:(.text+0x62a): undefined reference to SolveMap_ddMap' spooles.c:(.text+0x636): undefined reference to InpMtx_free’
spooles.c:(.text+0x63f): undefined reference to IVL_free' spooles.c:(.text+0x649): undefined reference to Graph_free’
spooles.c:(.text+0x651): undefined reference to IV_free' bin/ccx_2.19.a(spooles.o): In function fsolve_MT’:
spooles.c:(.text+0x6c2): undefined reference to DenseMtx_permuteRows' spooles.c:(.text+0x6c7): undefined reference to DenseMtx_new’
spooles.c:(.text+0x6e8): undefined reference to DenseMtx_init' spooles.c:(.text+0x6f0): undefined reference to DenseMtx_zero’
spooles.c:(.text+0x716): undefined reference to FrontMtx_MT_solve' spooles.c:(.text+0x726): undefined reference to DenseMtx_permuteRows’
spooles.c:(.text+0x72e): undefined reference to DenseMtx_free' bin/ccx_2.19.a(spooles.o): In function spooles_factor’:
spooles.c:(.text+0x7bb): undefined reference to InpMtx_new' spooles.c:(.text+0x82b): undefined reference to InpMtx_init’
spooles.c:(.text+0x8a0): undefined reference to InpMtx_inputRealEntry' spooles.c:(.text+0x8d1): undefined reference to InpMtx_inputRealEntry’
spooles.c:(.text+0x931): undefined reference to InpMtx_changeStorageMode' spooles.c:(.text+0x9da): undefined reference to InpMtx_inputRealEntry’
spooles.c:(.text+0xa2f): undefined reference to InpMtx_inputRealEntry' spooles.c:(.text+0xc1e): undefined reference to InpMtx_inputRealEntry’
spooles.c:(.text+0xc57): undefined reference to InpMtx_inputRealEntry' spooles.c:(.text+0xc7d): undefined reference to InpMtx_inputRealEntry’
bin/ccx_2.19.a(spooles.o):spooles.c:(.text+0xd21): more undefined references to InpMtx_inputRealEntry' follow bin/ccx_2.19.a(spooles.o): In function spooles_solve’:
spooles.c:(.text+0x130f): undefined reference to DenseMtx_new' spooles.c:(.text+0x1330): undefined reference to DenseMtx_init’
spooles.c:(.text+0x1338): undefined reference to DenseMtx_zero' spooles.c:(.text+0x1361): undefined reference to DenseMtx_setRealEntry’
spooles.c:(.text+0x13a4): undefined reference to DenseMtx_entries' spooles.c:(.text+0x13db): undefined reference to DenseMtx_permuteRows’
spooles.c:(.text+0x13e0): undefined reference to DenseMtx_new' spooles.c:(.text+0x1405): undefined reference to DenseMtx_init’
spooles.c:(.text+0x140d): undefined reference to DenseMtx_zero' spooles.c:(.text+0x1436): undefined reference to FrontMtx_solve’
spooles.c:(.text+0x1445): undefined reference to DenseMtx_permuteRows' spooles.c:(.text+0x144d): undefined reference to DenseMtx_free’
bin/ccx_2.19.a(spooles.o): In function spooles_cleanup': spooles.c:(.text+0x146c): undefined reference to FrontMtx_free’
spooles.c:(.text+0x1478): undefined reference to IV_free' spooles.c:(.text+0x1484): undefined reference to IV_free’
spooles.c:(.text+0x1490): undefined reference to SubMtxManager_free' spooles.c:(.text+0x14a1): undefined reference to SolveMap_free’
spooles.c:(.text+0x14ad): undefined reference to ETree_free' bin/ccx_2.19.a(spooles.o): In function spooles_factor_rad’:
spooles.c:(.text+0x1544): undefined reference to InpMtx_new' spooles.c:(.text+0x15b3): undefined reference to InpMtx_init’
spooles.c:(.text+0x1628): undefined reference to InpMtx_inputRealEntry' spooles.c:(.text+0x1659): undefined reference to InpMtx_inputRealEntry’
spooles.c:(.text+0x16b9): undefined reference to InpMtx_changeStorageMode' spooles.c:(.text+0x175a): undefined reference to InpMtx_inputRealEntry’
spooles.c:(.text+0x17af): undefined reference to InpMtx_inputRealEntry' spooles.c:(.text+0x1966): undefined reference to InpMtx_inputRealEntry’
spooles.c:(.text+0x1997): undefined reference to InpMtx_inputRealEntry' spooles.c:(.text+0x19bd): undefined reference to InpMtx_inputRealEntry’
bin/ccx_2.19.a(spooles.o):spooles.c:(.text+0x1a61): more undefined references to InpMtx_inputRealEntry' follow bin/ccx_2.19.a(spooles.o): In function spooles_solve_rad’:
spooles.c:(.text+0x2059): undefined reference to DenseMtx_new' spooles.c:(.text+0x207a): undefined reference to DenseMtx_init’
spooles.c:(.text+0x2082): undefined reference to DenseMtx_zero' spooles.c:(.text+0x20a9): undefined reference to DenseMtx_setRealEntry’
spooles.c:(.text+0x20fc): undefined reference to DenseMtx_entries' spooles.c:(.text+0x2133): undefined reference to DenseMtx_permuteRows’
spooles.c:(.text+0x2138): undefined reference to DenseMtx_new' spooles.c:(.text+0x215d): undefined reference to DenseMtx_init’
spooles.c:(.text+0x2165): undefined reference to DenseMtx_zero' spooles.c:(.text+0x218e): undefined reference to FrontMtx_solve’
spooles.c:(.text+0x219d): undefined reference to DenseMtx_permuteRows' spooles.c:(.text+0x21a5): undefined reference to DenseMtx_free’
bin/ccx_2.19.a(spooles.o): In function spooles_cleanup_rad': spooles.c:(.text+0x21bc): undefined reference to FrontMtx_free’
spooles.c:(.text+0x21c8): undefined reference to IV_free' spooles.c:(.text+0x21d4): undefined reference to IV_free’
spooles.c:(.text+0x21e0): undefined reference to SubMtxManager_free' spooles.c:(.text+0x21f1): undefined reference to SolveMap_free’
spooles.c:(.text+0x21fd): undefined reference to ETree_free' bin/ccx_2.19.a(spooles.o): In function spooles’:
spooles.c:(.text+0x2293): undefined reference to FrontMtx_free' spooles.c:(.text+0x229f): undefined reference to IV_free’
spooles.c:(.text+0x22ab): undefined reference to IV_free' spooles.c:(.text+0x22b7): undefined reference to SubMtxManager_free’
spooles.c:(.text+0x22c8): undefined reference to SolveMap_free' spooles.c:(.text+0x22d4): undefined reference to ETree_free’
bin/ccx_2.19.a(spooles.o): In function spooles_solve': spooles.c:(.text+0x13c8): undefined reference to DenseMtx_free’
bin/ccx_2.19.a(spooles.o): In function spooles_solve_rad': spooles.c:(.text+0x2120): undefined reference to DenseMtx_free’
bin/ccx_2.19.a(dgesv.o): In function dtrsm_': dgesv.f:(.text+0x2ce): undefined reference to lsame_’
dgesv.f:(.text+0x305): undefined reference to lsame_' dgesv.f:(.text+0x322): undefined reference to lsame_’
dgesv.f:(.text+0x35f): undefined reference to lsame_' dgesv.f:(.text+0x389): undefined reference to xerbla_’
dgesv.f:(.text+0x3c2): undefined reference to lsame_' dgesv.f:(.text+0x3e5): undefined reference to lsame_’
dgesv.f:(.text+0x416): undefined reference to lsame_' dgesv.f:(.text+0x4a0): undefined reference to lsame_’
dgesv.f:(.text+0x4bd): undefined reference to lsame_' bin/ccx_2.19.a(dgesv.o):dgesv.f:(.text+0x4e2): more undefined references to lsame_’ follow
bin/ccx_2.19.a(dgesv.o): In function dgetrs_': dgesv.f:(.text+0x1df1): undefined reference to xerbla_’
dgesv.f:(.text+0x1e31): undefined reference to lsame_' dgesv.f:(.text+0x1e55): undefined reference to lsame_’
bin/ccx_2.19.a(dgesv.o): In function dgemm_': dgesv.f:(.text+0x20c2): undefined reference to lsame_’
dgesv.f:(.text+0x20e2): undefined reference to lsame_' dgesv.f:(.text+0x2141): undefined reference to xerbla_’
dgesv.f:(.text+0x21a6): undefined reference to lsame_' dgesv.f:(.text+0x21db): undefined reference to lsame_’
dgesv.f:(.text+0x222b): undefined reference to lsame_' dgesv.f:(.text+0x22d4): undefined reference to lsame_’
dgesv.f:(.text+0x2309): undefined reference to lsame_' bin/ccx_2.19.a(dgesv.o):dgesv.f:(.text+0x239e): more undefined references to lsame_’ follow
bin/ccx_2.19.a(dgesv.o): In function dger_': dgesv.f:(.text+0x2df2): undefined reference to xerbla_’
bin/ccx_2.19.a(dgesv.o): In function dgetf2_': dgesv.f:(.text+0x3514): undefined reference to xerbla_’
dgesv.f:(.text+0x380d): undefined reference to xerbla_' bin/ccx_2.19.a(dgesv.o): In function dgetrf_‘:
dgesv.f:(.text+0x44e6): undefined reference to xerbla_' bin/ccx_2.19.a(dgesv.o): In function dgesv_’:
dgesv.f:(.text+0x4b51): undefined reference to xerbla_' bin/ccx_2.19.a(randomfieldmain.o): In function randomfieldmain’:
randomfieldmain.c:(.text+0xac0): undefined reference to dsaupd_' randomfieldmain.c:(.text+0xc3a): undefined reference to dsaupd_’
randomfieldmain.c:(.text+0xd84): undefined reference to dseupd_' randomfieldmain.c:(.text+0x1b8a): undefined reference to dsaupd_’
bin/ccx_2.19.a(auglag_inclusion.o): In function auglag_inclusion_': auglag_inclusion.f:(.text+0x126): undefined reference to dsymv_’
bin/ccx_2.19.a(dsptrf.o): In function dspr_': dsptrf.f:(.text+0x3c): undefined reference to lsame_’
dsptrf.f:(.text+0x70): undefined reference to xerbla_' dsptrf.f:(.text+0xe9): undefined reference to lsame_’
dsptrf.f:(.text+0x223): undefined reference to lsame_' bin/ccx_2.19.a(dsptrf.o): In function dsptrf_‘:
dsptrf.f:(.text+0x5c5): undefined reference to lsame_' dsptrf.f:(.text+0x847): undefined reference to xerbla_’
dsptrf.f:(.text+0xc08): undefined reference to dlaev2_' dsptrf.f:(.text+0xc6e): undefined reference to drot_’
dsptrf.f:(.text+0xd9b): undefined reference to drot_' dsptrf.f:(.text+0xe21): undefined reference to dlaev2_’
dsptrf.f:(.text+0xe9f): undefined reference to drot_' dsptrf.f:(.text+0x1023): undefined reference to drot_’
dsptrf.f:(.text+0x1057): undefined reference to lsame_' bin/ccx_2.19.a(dsptri.o): In function dspmv_‘:
dsptri.f:(.text+0x41): undefined reference to lsame_' dsptri.f:(.text+0x76): undefined reference to xerbla_’
dsptri.f:(.text+0xb3): undefined reference to lsame_' dsptri.f:(.text+0x16f): undefined reference to lsame_’
bin/ccx_2.19.a(dsptri.o): In function dsptri_': dsptri.f:(.text+0x8f1): undefined reference to lsame_’
dsptri.f:(.text+0xe8a): undefined reference to xerbla_' dsptri.f:(.text+0x107f): undefined reference to lsame_’
collect2: error: ld returned 1 exit status
make: *** [Makefile:107: bin/ccx_preCICE] Error 1

It is noted that Calculix-2.15 adapter have been successfully complied, however, when trying to compile a newer version Calculix-2.19 adapter, some errors occurred and complete compile log file can be found here. Does anyone have ideas about it? Many thanks in advance.

  • Cirrus
  • Building with CMake (version: 3.17.3)
  • GCC (version: 8.2.0)

This looks like a dependency issue. Are you sure you have installed and correctly onfigured Spooles and Arpack ?

Many thanks for your reply! I am sure Spools and Arpack have been correctly installed. In fact, I have successfully installed Calculix-2.15 adapter on the system. To make sure the Spooles and Arpack are correctly configured, could you please help me to have a check on the Makefile of CalculiX-2.19 adapter? Many thanks!
Makefile.txt (3.7 KB)

I don’t have experience building the adapter on something else than my laptop running Ubuntu so my experience is limited.
The default makefile has -larpack -llapack -lblas as arguments for arpacks. Maybe you’re missing components related to lapack and BLAS ?
But anyways, you seem to also have issues with spooles that I cannot explain. Any chance something could be related to the switch from GCC7 to GCC8 ?
But if the build with 2.15 worked, this should be fine.

Maybe you should adapt the 2.15 Makefile to 2.19 ?
It has been improved around 2.16 but the change was more about making configuration easier than adding dependencies, so if you find a way to transfer the correct configuration of 2.15 to 2.19 it should work.

2 Likes

Many thanks for your suggestion! I adapted the 2.15 Makefile to 2.19 by simply changing “2.15” in the Makefile to “2.19”. After using the adapted Makefile, the compilation finished with no errros.

1 Like

Glad it worked :slight_smile:
I’m surprised it worked that easily, didn’t you need to adapt parts to compile it ? There have been new files in the adapter code and the old Makefile doesnt take them in account, so I wonder if you’re not running a hybrid mix of Calculix 2.19 and the old version of the adapter.
(Which probably would work but wouldn’t include the latest adapter updates)

I’m also surprised :smile: I didn’t adapt any other parts but the Makefile.

I guess it is. How should I verify this?

Among other things, the old adapter can’t run modal dynamic simulations (see if you can run the tutorial proposed at Modal dynamic simulation of the perpendicular flap with CalculiX by boris-martin · Pull Request #284 · precice/tutorials · GitHub ) nor simulations involving hexaedral elements with nodal meshes (see if you can run Added CalculiX case for flow-over-heated-plate by boris-martin · Pull Request #271 · precice/tutorials · GitHub )

Also, running ccx_preCICE --version should be a hint. I’m not sure if it would give the CalculiX version or the adapter version.

1 Like

Many thanks for your reminder. Running ccx_preCICE --version, I got the CalculiX version information:

CalculiX Version 2.19, Copyright(C) 1998-2021 Guido Dhondt
CalculiX comes with ABSOLUTELY NO WARRANTY. This is free
software, and you are welcome to redistribute it under
certain conditions, see gpl.htm

However, I cannot directly use the script provided in the tutorial cases you mentioned above to run these two cases on HPC system. After I compile the adapter on my desktop computer, I will have a test. Thanks again for your help!

2 Likes

Hi @boris-martin,

I recompiled the CalculiX-2.19 adapter and encountered the following errors:

bin/ccx_2.19.a(spooles.o): In function `factor_MT':
spooles.c:(.text+0x58b): undefined reference to `FrontMtx_MT_factorInpMtx'
bin/ccx_2.19.a(spooles.o): In functio
[Makefile.txt|attachment](upload://hTRrap8IGPDYBU68AlxhityA5RU.txt) (3.7 KB)
n `fsolve_MT':
spooles.c:(.text+0x716): undefined reference to `FrontMtx_MT_solve'
collect2: error: ld returned 1 exit status
make: *** [Makefile:107: bin/ccx_preCICE] Error 1

It seems to be related to SPOOL. I tried to recompiled SPOOL but it didn’t work. Do you have any ideas about it? Thank you very much in advance!
Makefile.txt (3.7 KB)
make.log (1.4 MB)

Hi @yhuang

Not familiar with this error, but any chance removing the flag -DUSE_MT solves it ?
It’s related to OpenMP-parallelization. Might be something like “your spooles doesn’t support OpenMP” or related, but it’s a wild guess.

Hi @boris-martin

Thank you very much for your suggestion! You are right. After removing the flag -DUSE_MT, the compilation was completed with no errors!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.