Issue whith mesh

Hello,
My issue with mesh is when strip is connected to plane surface, makes mesh not simmetric along plane surface with respest to y-axis , i tried understand in mesh section of Coreform Guide if has some function that can be helpful, but i wasn’t able to find something(maybe i’m not realizing that there is).

Example of code:

reset  # Clear Prep
reset aprepro # Clear old variables

# Create the ground plane(model for antenna)
create surface rectangle width 100 height 250 zplane 
create vertex -39.52 12.16 0 on surface 1 
create vertex 39.52 12.16 0 on surface 1 
create vertex 30.4 88.16 0 on surface 1 
create vertex -30.4 88.16 0 on surface 1 
create vertex 12.16 101.84 0 on surface 1 
create vertex -12.16 101.84 0 on surface 1 
create vertex 41.04 -48.64 0 on surface 1 
create vertex -41.04 -48.64 0 on surface 1 
create vertex 15.2 -104.88 0 on surface 1 
create vertex -15.2 -104.88 0 on surface 1 
create vertex -30.4 -89.68 0 on surface 1 
create vertex 30.4 -89.68 0 on surface 1 
create vertex -38 -71.44 0 on surface 1 
create vertex 38 -71.44 0 on surface 1 
create vertex 0 104.88 0 on surface 1
create vertex -41.04 -7.6 0 on surface 1 
create vertex 41.04 -7.6 0 on surface 1

create curve vertex 5,8 
create curve vertex 8,10
create curve vertex 10,19
create curve vertex 19,9 
create curve vertex 9,7 
create curve vertex 7,6 
create curve vertex 6,21 
create curve vertex 21,11
create curve vertex 11,18
create curve vertex 18,16
create curve vertex 16,13
create curve vertex 13,14 
create curve vertex 14,15
create curve vertex 15,17
create curve vertex 17,12 
create curve vertex 12,20
create curve vertex 20,5
create surface curve 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 on surface 1
intersect surface 1,2
view top

#variables at 900 MHz
#{freq_1 = 0.875}
#{lam_1 = 0.3/freq_1*1000}  # Units in mm
#{a_1 = 0.005*lam_1}
#{w_1 = 4*a_1}
#{L_1 = 0.23*lam_1}  # Quarter-wave monopole

# Create the monopole at 900 MHz
create surface rectangle width {w_1} height {L_1} yplane
#{v_monopole_1 = Id("volume")}
#{s_monopole_1 = Id("surface")}
move volume {v_monopole_1} z {L_1/2}
rotate surface {s_monopole_1} angle 90 about z include_merged
move surface {s_monopole_1} location 0 -19.76 {L_1/2} include_merged

# Split the monopole at 900MHz surface near the ground plane to create a voltage source curve
#split surface in volume {v_monopole_1} across location position 0 {-w_1} {w_1} location position 0 {w_1} {w_1}
webcut volume {v_monopole_1} with plane zplane offset {w_1}
#{s_monopole_neg_1 = Id("surface")}


#variables at 1900 MHz
#{freq_2 = 2.055}
#{lam_2 = 0.3/freq_2*1000}  # Units in mm
#{a_2 = 0.005*lam_2}
#{w_2 = 4*a_2}
#{L_2 = 0.23*lam_2}  # Quarter-wave monopole

# Create the monopole at 1900 MHz
create surface rectangle width {w_2} height {L_2} yplane
#{v_monopole_2 = Id("volume")}
#{s_monopole_2 = Id("surface")}
move volume {v_monopole_2} z {L_2/2}
rotate surface {s_monopole_2} angle 90 about z include_merged
move surface {s_monopole_2} location 0 34.96 {L_2/2} include_merged

# Split the monopole at 1900MHz surface near the ground plane to create a voltage source curve
#split surface in volume {v_monopole_2} across location position 0 {-w_2} {w_2} location position 0 {w_2} {w_2}
webcut volume {v_monopole_2} with plane zplane offset {w_2}
#{s_monopole_neg_2 = Id("surface")}

# Imprint and merge to create common curves among surfaces at intersections
imprint all
merge all

# Assign surfaces with PEC material and create the voltage source
nsem assign surface all material "PEC"
nsem assign volume all material "PEC"
nsem voltage source "port_1" pos surface {s_monopole_neg_1-1} neg surface {s_monopole_neg_1} impedance 50
#nsem voltage source "port_2" pos surface {s_monopole_neg_2-1} neg surface {s_monopole_neg_2} impedance 50

block 1 surface all
#{mesh_size = lam_2/5}
surface all scheme pave
surface {s_monopole_neg_1} size {w_1/2}
mesh surface {s_monopole_neg_1}
surface {s_monopole_neg_1-1} size {w_1}
mesh surface {s_monopole_neg_1-1}
surface {s_monopole_neg_2} size {w_2/2}
mesh surface {s_monopole_neg_2}
surface {s_monopole_neg_2-1} size {w_2}
mesh surface {s_monopole_neg_2-1}
surface not is_meshed size {mesh_size}
mesh surface not is_meshed

nsem print status
#save cub5 "test.cub5" overwrite journal

Thanks for attention

Here is an example how how to achieve a mirrored mesh. First, you should create symmetric geometry with symmetric surfaces. This is done with the webcut command in the example I posted below. Then I removed one of the surface to leave only half of the ground plane. The mesh is then created, and I copy the surface with the mesh. A final imprint and merge ensures the mesh nodes are common. When using this workflow, the material assignment should happen last. Let me know how this works for you.

reset  # Clear Prep
reset aprepro # Clear old variables

# Create the ground plane(model for antenna)
create surface rectangle width 100 height 250 zplane 
create vertex -39.52 12.16 0 on surface 1 
create vertex 39.52 12.16 0 on surface 1 
create vertex 30.4 88.16 0 on surface 1 
create vertex -30.4 88.16 0 on surface 1 
create vertex 12.16 101.84 0 on surface 1 
create vertex -12.16 101.84 0 on surface 1 
create vertex 41.04 -48.64 0 on surface 1 
create vertex -41.04 -48.64 0 on surface 1 
create vertex 15.2 -104.88 0 on surface 1 
create vertex -15.2 -104.88 0 on surface 1 
create vertex -30.4 -89.68 0 on surface 1 
create vertex 30.4 -89.68 0 on surface 1 
create vertex -38 -71.44 0 on surface 1 
create vertex 38 -71.44 0 on surface 1 
create vertex 0 104.88 0 on surface 1
create vertex -41.04 -7.6 0 on surface 1 
create vertex 41.04 -7.6 0 on surface 1

create curve vertex 5,8 
create curve vertex 8,10
create curve vertex 10,19
create curve vertex 19,9 
create curve vertex 9,7 
create curve vertex 7,6 
create curve vertex 6,21 
create curve vertex 21,11
create curve vertex 11,18
create curve vertex 18,16
create curve vertex 16,13
create curve vertex 13,14 
create curve vertex 14,15
create curve vertex 15,17
create curve vertex 17,12 
create curve vertex 12,20
create curve vertex 20,5
create surface curve 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 on surface 1
intersect surface 1,2

webcut volume 2 with plane xplane offset 0
delete volume 2

view top

#variables at 900 MHz
#{freq_1 = 0.875}
#{lam_1 = 0.3/freq_1*1000}  # Units in mm
#{a_1 = 0.005*lam_1}
#{w_1 = 4*a_1}
#{L_1 = 0.23*lam_1}  # Quarter-wave monopole

# Create the monopole at 900 MHz
create surface rectangle width {w_1} height {L_1} yplane
#{v_monopole_1 = Id("volume")}
#{s_monopole_1 = Id("surface")}
move volume {v_monopole_1} z {L_1/2}
rotate surface {s_monopole_1} angle 90 about z include_merged
move surface {s_monopole_1} location 0 -19.76 {L_1/2} include_merged

# Split the monopole at 900MHz surface near the ground plane to create a voltage source curve
#split surface in volume {v_monopole_1} across location position 0 {-w_1} {w_1} location position 0 {w_1} {w_1}
webcut volume {v_monopole_1} with plane zplane offset {w_1}
#{s_monopole_neg_1 = Id("surface")}


#variables at 1900 MHz
#{freq_2 = 2.055}
#{lam_2 = 0.3/freq_2*1000}  # Units in mm
#{a_2 = 0.005*lam_2}
#{w_2 = 4*a_2}
#{L_2 = 0.23*lam_2}  # Quarter-wave monopole

# Create the monopole at 1900 MHz
create surface rectangle width {w_2} height {L_2} yplane
#{v_monopole_2 = Id("volume")}
#{s_monopole_2 = Id("surface")}
move volume {v_monopole_2} z {L_2/2}
rotate surface {s_monopole_2} angle 90 about z include_merged
move surface {s_monopole_2} location 0 34.96 {L_2/2} include_merged

# Split the monopole at 1900MHz surface near the ground plane to create a voltage source curve
#split surface in volume {v_monopole_2} across location position 0 {-w_2} {w_2} location position 0 {w_2} {w_2}
webcut volume {v_monopole_2} with plane zplane offset {w_2}
#{s_monopole_neg_2 = Id("surface")}

# Imprint and merge to create common curves among surfaces at intersections
imprint all
merge all

block 1 surface all
#{mesh_size = lam_2/5}
surface all scheme pave
curve common_to surface {s_monopole_neg_1} {s_monopole_neg_1-1} interval 1
surface {s_monopole_neg_1} size {w_1/2}
mesh surface {s_monopole_neg_1}
surface {s_monopole_neg_1-1} size {w_1}
mesh surface {s_monopole_neg_1-1}

curve common_to surface {s_monopole_neg_2} {s_monopole_neg_2-1} interval 1
surface {s_monopole_neg_2} size {w_2/2}
mesh surface {s_monopole_neg_2}
surface {s_monopole_neg_2-1} size {w_2}
mesh surface {s_monopole_neg_2-1}
surface not is_meshed size {mesh_size}
mesh surface not is_meshed

Surface 4  copy reflect x 
imprint all
merge all

# Assign surfaces with PEC material and create the voltage source
nsem assign surface all material "PEC"
nsem assign volume all material "PEC"
nsem voltage source "port_1" pos surface {s_monopole_neg_1-1} neg surface {s_monopole_neg_1} impedance 50
#nsem voltage source "port_2" pos surface {s_monopole_neg_2-1} neg surface {s_monopole_neg_2} impedance 50


nsem print status
#save cub5 "test.cub5" overwrite journal
1 Like

Hello,
I was triyng to finish simulation, i left undone from yesterday, when i was running in terminal, a message occur.

NSEM returned an error. Please check the error log for more information.Returned 3221226356
Command '['C:\\Program Files\\Nullspace EM 2023 R3\\bin\\nsem.EXE', 'monopole.h5']' returned non-zero exit status 3221226356.
Traceback (most recent call last):
  File "C:\Users\diogo\Desktop\test\simulation.py", line 24, in <module>
    model.run()
  File "C:\Program Files\Nullspace EM 2023 R3\Nullspace-Python\lib\site-packages\nsem\config.py", line 744, in run
    raise subprocess.CalledProcessError(process.returncode, process.args)
subprocess.CalledProcessError: Command '['C:\\Program Files\\Nullspace EM 2023 R3\\bin\\nsem.EXE', 'monopole.h5']' returned non-zero exit status 3221226356.

i tried again, a similar message occur:

Failed to login to feature #10: NSEM.
Error Message: Too many users
License not validated, heartbeat failed to initialize.
Heartbeat failed to initialize. Rerun with licensing diagnostic for more information.
NSEM returned an error. Please check the error log for more information.Returned 1
Command '['C:\\Program Files\\Nullspace EM 2023 R3\\bin\\nsem.EXE', 'monopole.h5']' returned non-zero exit status 1.
Traceback (most recent call last):
  File "C:\Users\diogo\Desktop\test\simulation.py", line 24, in <module>
    model.run()
  File "C:\Program Files\Nullspace EM 2023 R3\Nullspace-Python\lib\site-packages\nsem\config.py", line 744, in run
    raise subprocess.CalledProcessError(process.returncode, process.args)
subprocess.CalledProcessError: Command '['C:\\Program Files\\Nullspace EM 2023 R3\\bin\\nsem.EXE', 'monopole.h5']' returned non-zero exit status 1.

i don’t know, what happened to stop working all of a sudden.
Thanks for attention.

PS: Thanks for help in mirrored mesh, example helped understand what i was doing wrong.

The second error is because the first process didn’t exit cleanly and the license is still being consumed. If you wait about 5 minutes, it should clear. You can also go to localhost:1947 in a browser, click on Sessions, and try to clear it manually. There a button to the far right.

For the first error, is that the only output from the screen? Could you post the full message and/or your files?

Hello,
Yes, it is full terminal message:

Setting default quadrature values for basis order 3
main beg

License Validated.
input file name : monopole.h5
runStage : 0
fileNameSimulation : monopole.h5
fileNameReport :

simulation configure beg
simulation data configure beg
  read simulation dB configuration beg
    read simulation configuration beg
    read simulation quadrature beg
    read simulation quadrature end
    read simulation configuration end
  SimulationConfiguration
    model name : monopole
     precision : H
             M : 3
    frequencies (GHz)
          0 : 9.2220000000000000e+08
    read simulation mesh beg
    read simulation mesh end
  MeshConfiguration
    scale : 1.0000000000000000e-03
    cubFileName : test.cub5
    abaqusFileName :
    read cluster configuration beg
    read cluster configuration end
  ClusterConfiguration
    distance method : CENTROID
    minimum size : 2000
    free space lambda scale : 1.000000
    minimum binary tree level : 1
    maximum binary tree level : 15
    read simulation solver beg
    read compression configuration beg
    read compression configuration end
    read simulation solver end
  SolverConfiguration
    system : COMPRESS
  use GPUs : 0
  CompressionConfiguration
    dense fill all off diagonal blocks : 0
    compress fill all off diagonal blocks : 0
    dense fill all junction blocks : 0
    minimal block size : 10
    free space lambda scale : 1.000000
    fill tolerance : 0.0001
    solve tolerance : 0.0001
    number of random restarts : 5
    read simulation materials beg
    read simulation materials end
    read simulation PW excitations beg
    read simulation PW excitations end
    read simulation VS excitations beg
      reading VS : port_1
    read simulation VS excitations end
  ExcitationConfiguration
    voltage sources (1)
                port_1 :          block_2          block_3
    incident angles th (deg) (0)
    incident angles ph (deg) (0)
    read simulation material settings beg
    read simulation material settings end
  MaterialManagerConfiguration
    materials
         -1 : PEC (implicit)
          0 : freespace
            0 : (+1.0000000000000000e+00 , +0.0000000000000000e+00) : (+1.0000000000000000e+00 , +0.0000000000000000e+00)
    material volumes
          0 :     0 ::     0 freespace
          1 :     9 ::    -1 PEC
    material blocks
          0 :                          block_1 ::     0      0 :: PEC
          1 :                          block_2 ::     0      0 :: PEC
          2 :                          block_3 ::     0      0 :: PEC
          3 :                          block_5 ::     0      9 :: PEC
  read simulation dB configuration end

  configure incident angles beg
  configure incident angles end

  configure observed angles beg
  configure observed angles end

  configure GQ beg
    GQ_CACHE::GQ_TS : 0
    GQ_CACHE::GQ_TN : 1
    GQ_CACHE::GQ_TF : 2
    GQ_CACHE::GQ_SS : 3
    GQ_CACHE::GQ_SN : 4
    GQ_CACHE::GQ_SF : 5
    GQ load Ts beg (12)
    GQ load Ts end
    GQ load Tn beg (12)
    GQ load Tn end
    GQ load Tf beg (3)
    GQ load Tf end
    GQ load Ss beg (12)
    GQ load Ss end
    GQ load Sn beg (16)
    GQ load Sn end
    GQ load Sf beg (3)
    GQ load Sf end
  configure GQ end

  configure order beg
  configure order end

  configure mesh file name base beg
    fileNameMeshBase : test.cub5
  configure mesh file name base end
    Mesh_GQ_MLP load beg
      extension : cub5
      read mesh beg
NSEM returned an error. Please check the error log for more information.Returned 3221226356
Command '['C:\\Program Files\\Nullspace EM 2023 R3\\bin\\nsem.EXE', 'monopole.h5']' returned non-zero exit status 3221226356.
Traceback (most recent call last):
  File "C:\Users\diogo\Desktop\test\simulation.py", line 24, in <module>
    model.run()
  File "C:\Program Files\Nullspace EM 2023 R3\Nullspace-Python\lib\site-packages\nsem\config.py", line 744, in run
    raise subprocess.CalledProcessError(process.returncode, process.args)
subprocess.CalledProcessError: Command '['C:\\Program Files\\Nullspace EM 2023 R3\\bin\\nsem.EXE', 'monopole.h5']' returned non-zero exit status 3221226356.

I used simple file py.

# -*- coding: utf-8 -*-
import numpy as np
from nsem.config import *
from nsem.report import *

model = Configuration('monopole')
model.set_cub5_filename('test.cub5')
model.set_model_scale(0.001)
model.set_order(3)
model.set_solve_type('compress')

# Set the specific frequency instead of a frequency range
frequency = 0.9222  # Example: 900 MHz
model.set_frequencies(np.array([frequency]))  # Use a single frequency in the array
model.save()

report = Report('monopole_report', model)
thObs = np.linspace(0, 360, 361)
phObs = np.linspace(0, 360, 361)
report.request_far_fields_grid(thObs, phObs)
report.request_y_parameters()
report.save()

model.run()
report.run()

prep file:

reset  # Clear Prep
reset aprepro # Clear old variables

#substrate dimensions
# {sub_h = 60} # Units in mm
# {sub_w = 60}  # Units in mm
# {sub_offset = 10}

#cylinders dimensions
# {cy_h = 19} # Units in mm
# {cy_r = 2.5}  # Units in mm

# move dimensions
# {align_offset = 0} 


# Create the ground plane(model for antenna)
create surface rectangle width 100 height 250 zplane 
create vertex -39.52 12.16 0 on surface 1 
create vertex 39.52 12.16 0 on surface 1 
create vertex 30.4 88.16 0 on surface 1 
create vertex -30.4 88.16 0 on surface 1 
create vertex 12.16 101.84 0 on surface 1 
create vertex -12.16 101.84 0 on surface 1 
create vertex 41.04 -48.64 0 on surface 1 
create vertex -41.04 -48.64 0 on surface 1 
create vertex 15.2 -104.88 0 on surface 1 
create vertex -15.2 -104.88 0 on surface 1 
create vertex -30.4 -89.68 0 on surface 1 
create vertex 30.4 -89.68 0 on surface 1 
create vertex -38 -71.44 0 on surface 1 
create vertex 38 -71.44 0 on surface 1 
create vertex 0 104.88 0 on surface 1
create vertex -41.04 -7.6 0 on surface 1 
create vertex 41.04 -7.6 0 on surface 1

create curve vertex 5,8 
create curve vertex 8,10
create curve vertex 10,19
create curve vertex 19,9 
create curve vertex 9,7 
create curve vertex 7,6 
create curve vertex 6,21 
create curve vertex 21,11
create curve vertex 11,18
create curve vertex 18,16
create curve vertex 16,13
create curve vertex 13,14 
create curve vertex 14,15
create curve vertex 15,17
create curve vertex 17,12 
create curve vertex 12,20
create curve vertex 20,5
create surface curve 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 on surface 1
intersect surface 1,2
view top
move surface 2 x {align_offset} z 359 #340 + height of cylinder

webcut volume 2 with plane xplane offset 0
delete volume 2

#variables at 900 MHz
#{freq_1 = 0.9222}
#{lam_1 = 0.3/freq_1*1000}  # Units in mm
#{a_1 = 0.005*lam_1}
#{w_1 = 4*a_1}
#{L_1 = 0.23*lam_1}  # Quarter-wave monopole

# Create the monopole at 900 MHz
create surface rectangle width {w_1} height {L_1} yplane
#{v_monopole_1 = Id("volume")}
#{s_monopole_1 = Id("surface")}
move volume {v_monopole_1} z {L_1/2}
rotate surface {s_monopole_1} angle 90 about z include_merged
move surface {s_monopole_1} location {align_offset} -19.76 {L_1/2 + 359} include_merged

# Split the monopole at 900MHz surface near the ground plane to create a voltage source curve
#split surface in volume {v_monopole_1} across location position 0 {-w_1} {w_1} location position 0 {w_1} {w_1}
webcut volume {v_monopole_1} with plane zplane offset {w_1 + 359}
#{s_monopole_neg_1 = Id("surface")}


#variables at 1900 MHz
#{freq_2 = 1.905}
#{lam_2 = 0.3/freq_2*1000}  # Units in mm
#{a_2 = 0.005*lam_2}
#{w_2 = 4*a_2}
#{L_2 = 0.23*lam_2}  # Quarter-wave monopole

# Create the monopole at 1900 MHz
create surface rectangle width {w_2} height {L_2} yplane
#{v_monopole_2 = Id("volume")}
#{s_monopole_2 = Id("surface")}
move volume {v_monopole_2} z {L_2/2}
rotate surface {s_monopole_2} angle 90 about z include_merged
move surface {s_monopole_2} location {align_offset} 34.96 {L_2/2 + 359} include_merged

# Split the monopole at 1900MHz surface near the ground plane to create a voltage source curve
#split surface in volume {v_monopole_2} across location position 0 {-w_2} {w_2} location position 0 {w_2} {w_2}
webcut volume {v_monopole_2} with plane zplane offset {w_2 + 359}
#{s_monopole_neg_2 = Id("surface")}

# Imprint and merge to create common curves among surfaces at intersections
imprint all
merge all

block 1 surface all
#{mesh_size = lam_2/5}
surface all scheme pave
curve common_to surface {s_monopole_neg_1} {s_monopole_neg_1-1} interval 1
surface {s_monopole_neg_1} size {w_1/2}
mesh surface {s_monopole_neg_1}
surface {s_monopole_neg_1-1} size {w_1}
mesh surface {s_monopole_neg_1-1}

curve common_to surface {s_monopole_neg_2} {s_monopole_neg_2-1} interval 1
surface {s_monopole_neg_2} size {w_2/2}
mesh surface {s_monopole_neg_2}
surface {s_monopole_neg_2-1} size {w_2}
mesh surface {s_monopole_neg_2-1}
surface not is_meshed size {mesh_size}
mesh surface not is_meshed

Surface 4  copy reflect x 
imprint all
merge all

# Assign surfaces with PEC material and create the voltage source
nsem assign surface all material "PEC"
nsem assign volume all material "PEC"
nsem voltage source "port_1" pos surface {s_monopole_neg_1-1} neg surface {s_monopole_neg_1} impedance 50
#nsem voltage source "port_2" pos surface {s_monopole_neg_2-1} neg surface {s_monopole_neg_2} impedance 50

create Cylinder height 4000 major radius 1500 minor radius 340 
#{v_cyl = Id("volume")}
rotate Volume {v_cyl} angle 90  about X include_merged 
webcut volume {v_cyl} with plane zplane offset 0
delete volume 10

# create 4 cylinders attached to both ground plane and substrate(working as support to stucure with monopole)- wanted to put in near end of rectangule(all 4 forming a square-i wasn't able to do that)
#create cylinder height {cy_h} radius {cy_r} 
brick x {2*cy_r} y {2*cy_r} z {cy_h}
#{v_cyl_1 = Id("volume")}
brick x {2*cy_r} y {2*cy_r} z {cy_h}
brick x {2*cy_r} y {2*cy_r} z {cy_h}
brick x {2*cy_r} y {2*cy_r} z {cy_h}

move volume {v_cyl_1} x {sub_w/2 - 1*cy_r + align_offset} y {sub_h/2 - 1*cy_r} z {349.5} #340 + half of height of cylinder
move volume {v_cyl_1+1} x {-(sub_w/2 - 1*cy_r) + align_offset} y {sub_h/2 - 1*cy_r} z {349.5}
move volume {v_cyl_1+2} x {-(sub_w/2 - 1*cy_r) + align_offset} y {-(sub_h/2 - 1*cy_r)} z {349.5}
move volume {v_cyl_1+3} x {sub_w/2 - 1*cy_r + align_offset} y {-(sub_h/2 - 1*cy_r)} z {349.5}

delete volume {v_cyl_1}
delete volume {v_cyl_1+1}
delete volume {v_cyl_1+2}
delete volume {v_cyl_1+3}

block 1 surface all
#{mesh_size = lam_2/1.9}
surface all scheme pave
surface {s_monopole_neg_1} size {w_1/2}
mesh surface {s_monopole_neg_1}
surface {s_monopole_neg_1-1} size {w_1}
mesh surface {s_monopole_neg_1-1}
surface {s_monopole_neg_2} size {w_2/2}
mesh surface {s_monopole_neg_2}
surface {s_monopole_neg_2-1} size {w_2}
mesh surface {s_monopole_neg_2-1}

surface not is_meshed size {mesh_size}
mesh surface not is_meshed

# Assign surfaces with PEC material and create the voltage source
nsem assign surface all material "PEC"
nsem assign volume all material "PEC"

nsem print status
save cub5 "test.cub5" overwrite journal

Is there more things to extract from terminal to find error?
Thanks for attention

Hello,
I tried to use tips that are provided in installation file, didn’t solve issue.
Also i use eventviewer app to find more information.
This is what was provided, if it helps.

Nome do registo:Application
Origem:        Application Error
Data:          02/01/2025 21:11:07
ID do evento:  1000
Categoria de Tarefa:(100)
Nível:         Erro
Palavras-chave:Clássica
Utilizador:    N/D
Computador:    LAPTOP-GJFSNFB7
Descrição:
Nome da aplicação com falha: nsem.EXE, versão: 0.0.0.0, carimbo de data/hora: 0x65675f95
Nome do módulo com falha: ntdll.dll, versão: 10.0.19041.5007, carimbo de data/hora: 0x688f8c4b
Código de exceção: 0xc0000374
Desvio de falha: 0x00000000000ff3c9
ID do processo com falha: 0x2aec
Hora de início da aplicação com falha: 0x01db5d5ad519ae1b
Caminho da aplicação com falha: C:\Program Files\Nullspace EM 2023 R3\bin\nsem.EXE
Caminho do módulo com falha: C:\WINDOWS\SYSTEM32\ntdll.dll
ID do Relatório: 38af4236-3229-4bdc-9dcd-52f3b44adc00
Nome completo do pacote com falha: 
ID da aplicação relativa ao pacote com falha: 
Evento Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>100</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2025-01-02T21:11:07.5779078Z" />
    <EventRecordID>437582</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>Application</Channel>
    <Computer>LAPTOP-GJFSNFB7</Computer>
    <Security />
  </System>
  <EventData>
    <Data>nsem.EXE</Data>
    <Data>0.0.0.0</Data>
    <Data>65675f95</Data>
    <Data>ntdll.dll</Data>
    <Data>10.0.19041.5007</Data>
    <Data>688f8c4b</Data>
    <Data>c0000374</Data>
    <Data>00000000000ff3c9</Data>
    <Data>2aec</Data>
    <Data>01db5d5ad519ae1b</Data>
    <Data>C:\Program Files\Nullspace EM 2023 R3\bin\nsem.EXE</Data>
    <Data>C:\WINDOWS\SYSTEM32\ntdll.dll</Data>
    <Data>38af4236-3229-4bdc-9dcd-52f3b44adc00</Data>
    <Data>
    </Data>
    <Data>
    </Data>
  </EventData>
</Event>

Thanks for attention

Ah, the issue is that the nodes in the mesh are not numbered continuously. This happens sometimes based on how the meshing is done. You can see this by doing ‘list node’, and you should see a non-contiguous listing. To remedy this, place the command ‘compress node’ just after the end of the last meshing command.

Thanks
I thaught there was something that was not related with file, because there was no error on prep and information error was bit strange.
But i did that change and solve issue.

Thanks for pointing this out for us! We’re adding this to our running list of improvements to help with usability!!