CoilSolver in parallel (SOLVED)

Numerical methods and mathematical models of Elmer
Post Reply
fjimenez
Posts: 63
Joined: 27 Sep 2021, 23:40
Antispam: Yes

CoilSolver in parallel (SOLVED)

Post by fjimenez »

Hi,

I prepared a very simple case from a more complex one that has problems to run in parallel. The case consist of a coil, a copper plate, and air. The serial run works with no problems. Any insight into what could be happening?

Elmer 9.0 Rev: 48c6ba39, Compiled: 2022-03-11, Ubuntu
Serial:
ElmerSolver copper_and_coil.sif
Parallel:
ElmerGrid 8 2 copper_and_coil -partdual -metiskway
mpirun -np 4 ElmerSolver_mpi copper_and_coil.sif
coil_copper_model_mre.png
coil_copper_model_mre.png (86.83 KiB) Viewed 899 times

Code: Select all

ListTagKeywords: Setting weight for keywords!
ListTagKeywords: No parameters width suffix: normalize by area
ListTagKeywords: Setting weight for keywords!
ListTagKeywords: No parameters width suffix: normalize by volume
WARNING:: ReadTargetNames: Could not map name to Body nor BC: bnry5
WARNING:: ReadTargetNames: Could not map name to Body nor BC: bnry5

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
ComputeChange: NS (ITER=1) (NRM,RELC): ( 0.59847995      2.0000000     ) :: coilsolver
ComputeChange: NS (ITER=2) (NRM,RELC): ( 0.57031824     0.48189182E-01 ) :: coilsolver
#0  0x7fddfa8c0d21 in ???
#1  0x7fddfa8bfef5 in ???
#2  0x7fddfa6f10bf in ???
#3  0x7fddfafa1b48 in __parallelutils_MOD_parallelsumvectorint
	at /home/fjimenez/git/elmerfem/fem/src/ParallelUtils.F90:716
#4  0x7fddfaba0e65 in choosefixedbulknodesnarrow
	at /home/fjimenez/git/elmerfem/fem/src/modules/CoilSolver.F90:1212
#5  0x7fddfaba8834 in coilsolver_
	at /home/fjimenez/git/elmerfem/fem/src/modules/CoilSolver.F90:374
#6  0x7fddfae4a19a in __mainutils_MOD_singlesolver
	at /home/fjimenez/git/elmerfem/fem/src/MainUtils.F90:5250
#7  0x7fddfae5f53b in __mainutils_MOD_solveractivate
	at /home/fjimenez/git/elmerfem/fem/src/MainUtils.F90:5493
#8  0x7fddfb0bd9f0 in execsimulation
	at /home/fjimenez/git/elmerfem/fem/src/ElmerSolver.F90:2348
#9  0x7fddfb0c401d in elmersolver_
	at /home/fjimenez/git/elmerfem/fem/src/ElmerSolver.F90:593
#10  0x55e31320a3cd in solver
	at /home/fjimenez/git/elmerfem/fem/src/Solver.F90:57
#11  0x55e31320a13e in main
	at /home/fjimenez/git/elmerfem/fem/src/Solver.F90:34
mesh.tgz
(918.49 KiB) Downloaded 88 times
copper_and_coil.sif
(5.01 KiB) Downloaded 91 times
Cheers,

Francisco
Last edited by fjimenez on 12 Mar 2022, 19:01, edited 1 time in total.
kevinarden
Posts: 2298
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: CoilSolver in parallel

Post by kevinarden »

I first did
ElmerGrid 8 2 copper_and_coil -partdual -metiskway 4
Then
mpirun -np 4 ElmerSolver_mpi copper_and_coil.sif

received Error
ReadTargetNames: Requested the use of entity names but this file does not exits: ./copper_and_coil/mesh.names
ElmerGrid did not create mesh.names file
Edited sif to remove use meh names
! Use Mesh Names = True

It then ran successfully
fjimenez
Posts: 63
Joined: 27 Sep 2021, 23:40
Antispam: Yes

Re: CoilSolver in parallel (SOLVED)

Post by fjimenez »

Thanks for taking a quick look at the case kevinarden, I should've investigated the problem a little more before posting. It turned out that
my conda mpi library was incompatible with my system one. I hadn't had this problem before so I thought that the problem was Elmer related.
It is now working as normal when I deactivate my conda environment. Not sure what happened, I have done tons of parallel runs with this setup so far with no problems.

Cheers,

Francisco
ssnestinger
Posts: 1
Joined: 03 Nov 2023, 21:51
Antispam: Yes

Re: CoilSolver in parallel (SOLVED)

Post by ssnestinger »

It appears the parallel execution of this configuration still fails if executed with more partitions.
  • Commands:

    Code: Select all

    > ElmerGrid 8 2 copper_and_coil -partdual -metiskway 8
    > mpirun -np 8 ElmerSolver_mpi copper_and_coil.sif
    
    Output:

    Code: Select all

    ssnestinger@PC:~/Desktop/test$ mpirun -np 8 ElmerSolver_mpi copper_and_coil.sif
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:17:44
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:17:44
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:17:44
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:17:44
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:17:44
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:17:44
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:17:44
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:17:44
    ParCommInit:  Initialize #PEs:            8
    ParCommInit:  Initialize #PEs:            8
    ParCommInit:  Initialize #PEs:            8
    ParCommInit:  Initialize #PEs:            8
    ParCommInit:  Initialize #PEs:            8
    ParCommInit:  Initialize #PEs:            8
    ParCommInit:  Initialize #PEs:            8
    MAIN: OMP_NUM_THREADS not set. Using only 1 thread per task.
    MAIN: ParCommInit:  Initialize #PEs:            8
    
    MAIN: =============================================================
    MAIN: ElmerSolver finite element software, Welcome!
    MAIN: This program is free software licensed under (L)GPL
    MAIN: Copyright 1st April 1995 - , CSC - IT Center for Science Ltd.
    MAIN: Webpage http://www.csc.fi/elmer, Email elmeradm@csc.fi
    MAIN: Version: 9.0 (Rev: e5b2b7b8d, Compiled: 2023-11-03)
    MAIN:  Running in parallel using 8 tasks.
    MAIN:  Running with just one thread per task.
    MAIN:  MUMPS library linked in.
    MAIN:  Zoltan library linked in.
    MAIN: =============================================================
    MAIN: 
    MAIN: 
    MAIN: -------------------------------------
    MAIN: Reading Model: copper_and_coil.sif
    LoadInputFile: Scanning input file: copper_and_coil.sif
    LoadInputFile: Scanning only size info
    LoadInputFile: First time visiting
    LoadInputFile: Reading base load of sif file
    LoadInputFile: Loading input file: copper_and_coil.sif
    LoadInputFile: Reading base load of sif file
    CheckKeyword:  Unlisted keyword: [save coil set] in section: [solver 1]
    CheckKeyword:  Unlisted keyword: [save coil index] in section: [solver 1]
    CheckKeyword:  Unlisted keyword: [single coil cut] in section: [solver 1]
    CheckKeyword:  Unlisted keyword: [a re {e}] in section: [boundary condition 1]
    CheckKeyword:  Unlisted keyword: [a im {e}] in section: [boundary condition 1]
    CheckKeyword:  Unlisted keyword: [jfix] in section: [boundary condition 1]
    LoadInputFile: Number of BCs: 1
    LoadInputFile: Number of Body Forces: 1
    LoadInputFile: Number of Initial Conditions: 0
    LoadInputFile: Number of Materials: 2
    LoadInputFile: Number of Equations: 2
    LoadInputFile: Number of Solvers: 5
    LoadInputFile: Number of Bodies: 3
    ListTagKeywords: Setting weight for keywords!
    ListTagKeywords: No parameters width suffix: normalize by area
    ListTagKeywords: Setting weight for keywords!
    ListTagKeywords: No parameters width suffix: normalize by volume
    
    Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
    
    Backtrace for this error:
    BiCGStabl:       55 0.5942E-08 0.5621E-08
    ComputeChange: NS (ITER=1) (NRM,RELC): ( 0.57594313      2.0000000     ) :: coilsolver
    BiCGStabl:       57 0.1046E-07 0.9895E-08
    ComputeChange: NS (ITER=2) (NRM,RELC): ( 0.59854992     0.38496239E-01 ) :: coilsolver
    BiCGStabl:        5 0.7412E-08 0.6728E-08
    BiCGStabl:        6 0.4098E-08 0.3687E-08
    BiCGStabl:        6 0.1043E-07 0.8717E-08
    #0  0x7f7ec5223970 in ???
    #1  0x7f7ec5222ad5 in ???
    #2  0x7f7ec4e3c45f in ???
    	at ./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
    #3  0x7f7ec5a752e8 in __parallelutils_MOD_parallelsumvectorint
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/ParallelUtils.F90:839
    #4  0x7f7df54e941d in choosefixedbulknodesnarrow
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/modules/CoilSolver.F90:1266
    #5  0x7f7df54f32dc in coilsolver_
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/modules/CoilSolver.F90:381
    #6  0x7f7ec58efbfd in __mainutils_MOD_singlesolver
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/MainUtils.F90:5256
    #7  0x7f7ec590556c in __mainutils_MOD_solveractivate
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/MainUtils.F90:5531
    #8  0x7f7ec5ba6517 in execsimulation
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/ElmerSolver.F90:2616
    #9  0x7f7ec5bafec7 in elmersolver_
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/ElmerSolver.F90:662
    #10  0x55aeba00a3f0 in solver
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/Solver.F90:57
    #11  0x55aeba00a15e in main
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/Solver.F90:34
    --------------------------------------------------------------------------
    Primary job  terminated normally, but 1 process returned
    a non-zero exit code. Per user-direction, the job has been aborted.
    --------------------------------------------------------------------------
    --------------------------------------------------------------------------
    mpirun noticed that process rank 1 with PID 0 on node PC exited on signal 11 (Segmentation fault).
    --------------------------------------------------------------------------
    
The same error can be reproduced using the elmer-elmag/TEAM7 example:
  • Using Z paritioning:

    Code: Select all

    > git clone https://github.com/ElmerCSC/elmer-elmag.git
    > cd elmer-elmag/TEAM7
    > ElmerGrid 2 2 TEAM7 -partdual -partition 0 0 2
    > mpirun -np 2 ElmerSolver_mpi steady.sif
    
    Output:

    Code: Select all

    ssnestinger@PC:~/Desktop/elmer-elmag/TEAM7$ mpirun -np 2 ElmerSolver_mpi steady.sif
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 12:54:22
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 12:54:22
    ParCommInit:  Initialize #PEs:            2
    MAIN: OMP_NUM_THREADS not set. Using only 1 thread per task.
    MAIN: 
    MAIN: =============================================================
    MAIN: ElmerSolver finite element software, Welcome!
    MAIN: This program is free software licensed under (L)GPL
    MAIN: Copyright 1st April 1995 - , CSC - IT Center for Science Ltd.
    MAIN: Webpage http://www.csc.fi/elmer, Email elmeradm@csc.fi
    MAIN: Version: 9.0 (Rev: e5b2b7b8d, Compiled: 2023-11-03)
    MAIN:  Running in parallel using 2 tasks.
    MAIN:  Running with just one thread per task.
    MAIN:  MUMPS library linked in.
    MAIN:  Zoltan library linked in.
    MAIN: =============================================================
    ParCommInit:  Initialize #PEs:            2
    MAIN: 
    MAIN: 
    MAIN: -------------------------------------
    MAIN: Reading Model: steady.sif
    LoadInputFile: Scanning input file: steady.sif
    LoadInputFile: Scanning only size info
    LoadInputFile: First time visiting
    LoadInputFile: Reading base load of sif file
    LoadInputFile: Loading input file: steady.sif
    LoadInputFile: Reading base load of sif file
    WARNING:: LoadInputFile: Entry missing for: Body Force 1
    CheckKeyword:  Unlisted keyword: [jfix] in section: [boundary condition 1]
    CheckKeyword:  Unlisted keyword: [gmsh format] in section: [solver 4]
    LoadInputFile: Number of BCs: 1
    LoadInputFile: Number of Body Forces: 1
    WARNING:: LoadInputFile: Entry missing for: Body Force 1
    LoadInputFile: Number of Initial Conditions: 0
    LoadInputFile: Number of Materials: 2
    LoadInputFile: Number of Equations: 2
    LoadInputFile: Number of Solvers: 5
    LoadInputFile: Number of Bodies: 3
    ListTagKeywords: Setting weight for keywords!
    ListTagKeywords: No parameters width suffix: normalize by area
    ListTagKeywords: Setting weight for keywords!
    ListTagKeywords: No parameters width suffix: normalize by volume
    Loading user function library: [CoilSolver]...[CoilSolver_Init0]
    Loading user function library: [MagnetoDynamics]...[WhitneyAVSolver_Init0]
    WhitneyAVSolver_Init0: Setting element type to: "n:0 e:1"
    Loading user function library: [MagnetoDynamics]...[MagnetoDynamicsCalcFields_Init0]
    Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init0]
    Loading user function library: [SaveData]...[SaveLine_Init0]
    ElmerAsciiMesh: Base mesh name: ./TEAM7
    PermuteNodeNumbering: Performing node mapping
    ReadTargetNames: Reading names info from file: ./TEAM7/mesh.names
    WARNING:: ReadTargetNames: Could not map name to Body nor BC: coilskin
    WARNING:: ReadTargetNames: Could not map name to Body nor BC: plateskin
    MapBodiesAndBCs: Minimum initial body index: 2
    MapBodiesAndBCs: Maximum initial body index: 3
    MapBodiesAndBCs: Minimum initial boundary index: 5
    MapBodiesAndBCs: Maximum initial boundary index: 6
    LoadMesh: Elapsed REAL time:     0.6834 (s)
    MeshStabParams: Computing stabilization parameters
    MeshStabParams: Elapsed REAL time:     0.0054 (s)
    MAIN: -------------------------------------
    Loading user function library: [CoilSolver]...[CoilSolver_Init]
    Loading user function library: [CoilSolver]...[CoilSolver_bulk]
    Loading user function library: [CoilSolver]...[CoilSolver]
    Loading user function library: [MagnetoDynamics]...[WhitneyAVSolver_Init]
    Loading user function library: [MagnetoDynamics]...[WhitneyAVSolver_bulk]
    Loading user function library: [MagnetoDynamics]...[WhitneyAVSolver]
    OptimizeBandwidth: ---------------------------------------------------------
    OptimizeBandwidth: Computing matrix structure for: mgdynamics transient
    OptimizeBandwidth: Initial bandwidth for mgdynamics transient: 82825
    OptimizeBandwidth: Optimized bandwidth for mgdynamics transient: 3994
    OptimizeBandwidth: ---------------------------------------------------------
    Loading user function library: [MagnetoDynamics]...[MagnetoDynamicsCalcFields_Init]
    Loading user function library: [MagnetoDynamics]...[MagnetoDynamicsCalcFields_bulk]
    Loading user function library: [MagnetoDynamics]...[MagnetoDynamicsCalcFields]
    OptimizeBandwidth: ---------------------------------------------------------
    OptimizeBandwidth: Computing matrix structure for: mgdynamicscalc
    OptimizeBandwidth: Initial bandwidth for mgdynamicscalc: 12177
    OptimizeBandwidth: Optimized bandwidth for mgdynamicscalc: 1267
    OptimizeBandwidth: ---------------------------------------------------------
    Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init]
    Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_bulk]
    Loading user function library: [ResultOutputSolve]...[ResultOutputSolver]
    Loading user function library: [SaveData]...[SaveLine_Init]
    Loading user function library: [SaveData]...[SaveLine_bulk]
    Loading user function library: [SaveData]...[SaveLine]
    MAIN: Number of timesteps to be saved: 1
    CoilSolver: --------------------------------------
    CoilSolver: Solving current distribution in a coil
    CoilSolver: --------------------------------------
    CoilSolver: Assuming that all coils are closed!
    CoilSolver: Coil volume:  1.5886E-03
    CoilSolver: Coil center:  1.9400E-01  1.0000E-01  9.9000E-02
    CoilSolver: Choosing narrow fixing nodes for set: 1
    
    Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
    
    Backtrace for this error:
    CoilSolver: Choosing narrow fixing nodes for set: 2
    CoilSolver: Coil system consists of 1 coils
    CoilSolver: Set1 : 33 +nodes and 33 -nodes
    CoilSolver: Set2 : 33 +nodes and 33 -nodes
    CoilSolver: Computing the dummy potential field
    CutInterfaceConnections: Number of connections cut: 210
    EnforceDirichletConditions: Dirichlet conditions enforced for dofs: 66
    CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
    CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros:     11757
    CRS_IncompleteLU: ILU(0) (Real), filling (%) :       100
    CRS_IncompleteLU: ILU(0) (Real), Factorization ready at (s):     0.00
    SolveLinearSystem: Calculating nodal loads for: coiltmp
    ComputeChange: NS (ITER=1) (NRM,RELC): ( 0.58632456      2.0000000     ) :: coil solver
    CoilSolver: Discrepancy of start and end coil currents:   7.4300E-07
    CoilSolver: Initial coil current for coil 1:  4.2911E-03
    CoilSolver: Coil potential multiplier: -6.3899E+05
    CutInterfaceConnections: Number of connections cut: 210
    EnforceDirichletConditions: Dirichlet conditions enforced for dofs: 66
    CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
    CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros:     11757
    CRS_IncompleteLU: ILU(0) (Real), filling (%) :       100
    CRS_IncompleteLU: ILU(0) (Real), Factorization ready at (s):     0.00
    SolveLinearSystem: Calculating nodal loads for: coiltmp
    ComputeChange: NS (ITER=2) (NRM,RELC): ( 0.58161669     0.80618347E-02 ) :: coil solver
    CoilSolver: Discrepancy of start and end coil currents:   3.8524E-08
    CoilSolver: Initial coil current for coil 1:  4.2912E-03
    CoilSolver: Coil potential multiplier: -6.3898E+05
    CoilSolver: Computing current component: 1
    CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
    CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros:     11757
    CRS_IncompleteLU: ILU(0) (Real), filling (%) :       100
    CRS_IncompleteLU: ILU(0) (Real), Factorization ready at (s):     0.00
    CoilSolver: Computing current component: 2
    CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
    CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros:     11757
    CRS_IncompleteLU: ILU(0) (Real), filling (%) :       100
    CRS_IncompleteLU: ILU(0) (Real), Factorization ready at (s):     0.00
    CoilSolver: Computing current component: 3
    CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
    CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros:     11757
    CRS_IncompleteLU: ILU(0) (Real), filling (%) :       100
    CRS_IncompleteLU: ILU(0) (Real), Factorization ready at (s):     0.00
    #0  0x7fcf91e23970 in ???
    #1  0x7fcf91e22ad5 in ???
    #2  0x7fcf91a3c45f in ???
    	at ./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
    #3  0x7fcf926752e8 in __parallelutils_MOD_parallelsumvectorint
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/ParallelUtils.F90:839
    #4  0x7fcf7d13441d in choosefixedbulknodesnarrow
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/modules/CoilSolver.F90:1266
    #5  0x7fcf7d13e2dc in coilsolver_
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/modules/CoilSolver.F90:381
    #6  0x7fcf924efbfd in __mainutils_MOD_singlesolver
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/MainUtils.F90:5256
    #7  0x7fcf9250556c in __mainutils_MOD_solveractivate
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/MainUtils.F90:5531
    #8  0x7fcf927a6517 in execsimulation
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/ElmerSolver.F90:2616
    #9  0x7fcf927afec7 in elmersolver_
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/ElmerSolver.F90:662
    #10  0x5647b5ad03f0 in solver
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/Solver.F90:57
    #11  0x5647b5ad015e in main
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/Solver.F90:34
    --------------------------------------------------------------------------
    Primary job  terminated normally, but 1 process returned
    a non-zero exit code. Per user-direction, the job has been aborted.
    --------------------------------------------------------------------------
    --------------------------------------------------------------------------
    mpirun noticed that process rank 0 with PID 0 on node PC exited on signal 11 (Segmentation fault).
    --------------------------------------------------------------------------
    
  • Using Metiskway partitioning:

    Code: Select all

    > ElmerGrid 2 2 TEAM7 -partdual -metiskway 8
    > mpirun -np 8 ElmerSolver_mpi steady.sif
    
    Output:

    Code: Select all

    ssnestinger@PC:~/Desktop/elmer-elmag/TEAM7$ mpirun -np 8 ElmerSolver_mpi steady.sif
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:05:07
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:05:07
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:05:07
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:05:07
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:05:07
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:05:07
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:05:07
    ELMER SOLVER (v 9.0) STARTED AT: 2023/11/03 13:05:07
    ParCommInit:  Initialize #PEs:            8
    ParCommInit:  Initialize #PEs:            8
    ParCommInit:  Initialize #PEs:            8
    ParCommInit:  Initialize #PEs:            8
    MAIN: OMP_NUM_THREADS not set. Using only 1 thread per task.
    ParCommInit:  Initialize #PEs:            8
    ParCommInit:  Initialize #PEs:            8
    ParCommInit:  Initialize #PEs:            8
    ParCommInit:  Initialize #PEs:            8
    MAIN: 
    MAIN: =============================================================
    MAIN: ElmerSolver finite element software, Welcome!
    MAIN: This program is free software licensed under (L)GPL
    MAIN: Copyright 1st April 1995 - , CSC - IT Center for Science Ltd.
    MAIN: Webpage http://www.csc.fi/elmer, Email elmeradm@csc.fi
    MAIN: Version: 9.0 (Rev: e5b2b7b8d, Compiled: 2023-11-03)
    MAIN:  Running in parallel using 8 tasks.
    MAIN:  Running with just one thread per task.
    MAIN:  MUMPS library linked in.
    MAIN:  Zoltan library linked in.
    MAIN: =============================================================
    WARNING:: LoadInputFile: Entry missing for: Body Force 1
    WARNING:: LoadInputFile: Entry missing for: Body Force 1
    WARNING:: LoadInputFile: Entry missing for: Body Force 1
    WARNING:: LoadInputFile: Entry missing for: Body Force 1
    WARNING:: LoadInputFile: Entry missing for: Body Force 1
    WARNING:: LoadInputFile: Entry missing for: Body Force 1
    MAIN: 
    MAIN: 
    MAIN: -------------------------------------
    MAIN: Reading Model: steady.sif
    LoadInputFile: Scanning input file: steady.sif
    LoadInputFile: Scanning only size info
    LoadInputFile: First time visiting
    LoadInputFile: Reading base load of sif file
    LoadInputFile: Loading input file: steady.sif
    LoadInputFile: Reading base load of sif file
    CheckKeyword:  Unlisted keyword: [jfix] in section: [boundary condition 1]
    WARNING:: LoadInputFile: Entry missing for: Body Force 1
    CheckKeyword:  Unlisted keyword: [gmsh format] in section: [solver 4]
    LoadInputFile: Number of BCs: 1
    LoadInputFile: Number of Body Forces: 1
    WARNING:: LoadInputFile: Entry missing for: Body Force 1
    LoadInputFile: Number of Initial Conditions: 0
    LoadInputFile: Number of Materials: 2
    LoadInputFile: Number of Equations: 2
    LoadInputFile: Number of Solvers: 5
    LoadInputFile: Number of Bodies: 3
    ListTagKeywords: Setting weight for keywords!
    ListTagKeywords: No parameters width suffix: normalize by area
    ListTagKeywords: Setting weight for keywords!
    ListTagKeywords: No parameters width suffix: normalize by volume
    Loading user function library: [CoilSolver]...[CoilSolver_Init0]
    Loading user function library: [MagnetoDynamics]...[WhitneyAVSolver_Init0]
    WhitneyAVSolver_Init0: Setting element type to: "n:0 e:1"
    Loading user function library: [MagnetoDynamics]...[MagnetoDynamicsCalcFields_Init0]
    Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init0]
    Loading user function library: [SaveData]...[SaveLine_Init0]
    ElmerAsciiMesh: Base mesh name: ./TEAM7
    PermuteNodeNumbering: Performing node mapping
    ReadTargetNames: Reading names info from file: ./TEAM7/mesh.names
    WARNING:: ReadTargetNames: Could not map name to Body nor BC: coilskin
    WARNING:: ReadTargetNames: Could not map name to Body nor BC: plateskin
    MapBodiesAndBCs: Minimum initial body index: 1
    MapBodiesAndBCs: Maximum initial body index: 3
    MapBodiesAndBCs: Minimum initial boundary index: 4
    MapBodiesAndBCs: Maximum initial boundary index: 6
    LoadMesh: Elapsed REAL time:     0.1849 (s)
    MeshStabParams: Computing stabilization parameters
    MeshStabParams: Elapsed REAL time:     0.0022 (s)
    MAIN: -------------------------------------
    Loading user function library: [CoilSolver]...[CoilSolver_Init]
    Loading user function library: [CoilSolver]...[CoilSolver_bulk]
    Loading user function library: [CoilSolver]...[CoilSolver]
    OptimizeBandwidth: ---------------------------------------------------------
    OptimizeBandwidth: Computing matrix structure for: coil solver
    OptimizeBandwidth: Initial bandwidth for coil solver: 45
    OptimizeBandwidth: Optimized bandwidth for coil solver: 26
    OptimizeBandwidth: ---------------------------------------------------------
    Loading user function library: [MagnetoDynamics]...[WhitneyAVSolver_Init]
    Loading user function library: [MagnetoDynamics]...[WhitneyAVSolver_bulk]
    Loading user function library: [MagnetoDynamics]...[WhitneyAVSolver]
    OptimizeBandwidth: ---------------------------------------------------------
    OptimizeBandwidth: Computing matrix structure for: mgdynamics transient
    OptimizeBandwidth: Initial bandwidth for mgdynamics transient: 21281
    OptimizeBandwidth: Optimized bandwidth for mgdynamics transient: 1969
    OptimizeBandwidth: ---------------------------------------------------------
    Loading user function library: [MagnetoDynamics]...[MagnetoDynamicsCalcFields_Init]
    Loading user function library: [MagnetoDynamics]...[MagnetoDynamicsCalcFields_bulk]
    Loading user function library: [MagnetoDynamics]...[MagnetoDynamicsCalcFields]
    OptimizeBandwidth: ---------------------------------------------------------
    OptimizeBandwidth: Computing matrix structure for: mgdynamicscalc
    OptimizeBandwidth: Initial bandwidth for mgdynamicscalc: 3224
    OptimizeBandwidth: Optimized bandwidth for mgdynamicscalc: 399
    OptimizeBandwidth: ---------------------------------------------------------
    Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init]
    Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_bulk]
    Loading user function library: [ResultOutputSolve]...[ResultOutputSolver]
    Loading user function library: [SaveData]...[SaveLine_Init]
    Loading user function library: [SaveData]...[SaveLine_bulk]
    Loading user function library: [SaveData]...[SaveLine]
    MAIN: Number of timesteps to be saved: 1
    CoilSolver: --------------------------------------
    CoilSolver: Solving current distribution in a coil
    CoilSolver: --------------------------------------
    CoilSolver: Assuming that all coils are closed!
    CoilSolver: Coil volume:  1.5886E-03
    CoilSolver: Coil center:  1.9400E-01  1.0000E-01  9.9000E-02
    CoilSolver: Choosing narrow fixing nodes for set: 1
    
    Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
    
    Backtrace for this error:
    
    Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
    
    Backtrace for this error:
    CoilSolver: Choosing narrow fixing nodes for set: 2
    CoilSolver: Coil system consists of 1 coils
    CoilSolver: Set1 : 33 +nodes and 33 -nodes
    CoilSolver: Set2 : 33 +nodes and 33 -nodes
    CoilSolver: Computing the dummy potential field
    CutInterfaceConnections: Number of connections cut: 222
    EnforceDirichletConditions: Dirichlet conditions enforced for dofs: 66
    CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
    CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros:       501
    CRS_IncompleteLU: ILU(0) (Real), filling (%) :       100
    CRS_IncompleteLU: ILU(0) (Real), Factorization ready at (s):     0.00
          10 0.2540E+00
          20 0.7284E-02
          30 0.3627E-02
          40 0.1131E-01
          50 0.1152E-06
    Idrs:       54 0.2338E-08
    SolveLinearSystem: Calculating nodal loads for: coiltmp
    ComputeChange: NS (ITER=1) (NRM,RELC): ( 0.58632455      2.0000000     ) :: coil solver
    CoilSolver: Discrepancy of start and end coil currents:   3.3290E-08
    CoilSolver: Initial coil current for coil 1:  4.2912E-03
    CoilSolver: Coil potential multiplier: -6.3899E+05
    CutInterfaceConnections: Number of connections cut: 220
    EnforceDirichletConditions: Dirichlet conditions enforced for dofs: 66
    CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
    CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros:       501
    CRS_IncompleteLU: ILU(0) (Real), filling (%) :       100
    CRS_IncompleteLU: ILU(0) (Real), Factorization ready at (s):     0.00
          10 0.1543E-01
          20 0.8769E-02
          30 0.7585E-03
          40 0.4167E-02
          50 0.5455E-05
    Idrs:       57 0.2917E-08
    SolveLinearSystem: Calculating nodal loads for: coiltmp
    ComputeChange: NS (ITER=2) (NRM,RELC): ( 0.58161645     0.80622181E-02 ) :: coil solver
    CoilSolver: Discrepancy of start and end coil currents:   2.3996E-08
    CoilSolver: Initial coil current for coil 1:  4.2912E-03
    CoilSolver: Coil potential multiplier: -6.3898E+05
    CoilSolver: Computing current component: 1
    CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
    CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros:       501
    CRS_IncompleteLU: ILU(0) (Real), filling (%) :       100
    CRS_IncompleteLU: ILU(0) (Real), Factorization ready at (s):     0.00
          10 0.4327E-06
    Idrs:       13 0.4439E-08
    CoilSolver: Computing current component: 2
    CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
    CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros:       501
    CRS_IncompleteLU: ILU(0) (Real), filling (%) :       100
    CRS_IncompleteLU: ILU(0) (Real), Factorization ready at (s):     0.00
          10 0.2101E-03
    Idrs:       15 0.6847E-08
    CoilSolver: Computing current component: 3
    CRS_IncompleteLU: ILU(0) (Real), Performing Factorization:
    CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros:       501
    CRS_IncompleteLU: ILU(0) (Real), filling (%) :       100
    CRS_IncompleteLU: ILU(0) (Real), Factorization ready at (s):     0.00
          10 0.2714E-03
    Idrs:       18 0.2657E-08
    #0  0x7f64f0423970 in ???
    #1  0x7f64f0422ad5 in ???
    #2  0x7f64f003c45f in ???
    	at ./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
    #3  0x7f64f0c752e8 in __parallelutils_MOD_parallelsumvectorint
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/ParallelUtils.F90:839
    #4  0x7f64282be41d in choosefixedbulknodesnarrow
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/modules/CoilSolver.F90:1266
    #5  0x7f64282c82dc in coilsolver_
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/modules/CoilSolver.F90:381
    #6  0x7f64f0aefbfd in __mainutils_MOD_singlesolver
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/MainUtils.F90:5256
    #7  0x7f64f0b0556c in __mainutils_MOD_solveractivate
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/MainUtils.F90:5531
    #8  0x7f64f0da6517 in execsimulation
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/ElmerSolver.F90:2616
    #9  0x7f64f0dafec7 in elmersolver_
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/ElmerSolver.F90:662
    #10  0x5587b20793f0 in solver
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/Solver.F90:57
    #11  0x5587b207915e in main
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/Solver.F90:34
    #0  0x7f6306823970 in ???
    #1  0x7f6306822ad5 in ???
    #2  0x7f630643c45f in ???
    	at ./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
    #3  0x7f63070752e8 in __parallelutils_MOD_parallelsumvectorint
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/ParallelUtils.F90:839
    #4  0x7f62fe50841d in choosefixedbulknodesnarrow
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/modules/CoilSolver.F90:1266
    #5  0x7f62fe5122dc in coilsolver_
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/modules/CoilSolver.F90:381
    #6  0x7f6306eefbfd in __mainutils_MOD_singlesolver
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/MainUtils.F90:5256
    #7  0x7f6306f0556c in __mainutils_MOD_solveractivate
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/MainUtils.F90:5531
    #8  0x7f63071a6517 in execsimulation
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/ElmerSolver.F90:2616
    #9  0x7f63071afec7 in elmersolver_
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/ElmerSolver.F90:662
    #10  0x55aab70193f0 in solver
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/Solver.F90:57
    #11  0x55aab701915e in main
    	at /home/ssnestinger/opt/elmer/elmerfem/fem/src/Solver.F90:34
    --------------------------------------------------------------------------
    Primary job  terminated normally, but 1 process returned
    a non-zero exit code. Per user-direction, the job has been aborted.
    --------------------------------------------------------------------------
    --------------------------------------------------------------------------
    mpirun noticed that process rank 5 with PID 0 on node PC exited on signal 11 (Segmentation fault).
    --------------------------------------------------------------------------
    
Debugging Effort:
  • With some debugging, it looks like CoilSolver is attempting to process the Solver % Matrix for a PE partition without any coil elements. Since the partition has no coil, no initial Matrix is associated with the Solver which gives an Invalid Memory Reference at elmerfem/fem/src/ParallelUtils.F90:839:

    Code: Select all

           ParEnv = Matrix % ParMatrix % ParEnv
    
    If the mesh is partitioned such that all PEs have a bit of the coil, it works.
My System Information:
  • Operating System: Ubuntu 23.04
  • Elmer Source:
    • e5b2b7b8d (HEAD -> devel, origin/devel, origin/HEAD) Automate absorbing BCs also for materials different from vacuum
    • ElmerSolver - MAIN: Version: 9.0 (Rev: e5b2b7b8d, Compiled: 2023-11-03)
  • Compilers:
    • cmake version 3.25.1
    • gcc (Ubuntu 12.3.0-1ubuntu1~23.04) 12.3.0
    • GNU Fortran (Ubuntu 12.3.0-1ubuntu1~23.04) 12.3.0
- Stephen
Post Reply