ver. 2.0 beta avaialble

388 views
Skip to first unread message

Sergey Pancheshnyi

unread,
Nov 18, 2016, 1:13:08 PM11/18/16
to ZDPlasKin
Dear users of ZDPlasKin,

An update is now available to download. It is a beta version and the release 2.0 is planned in December. Please send me your comments and suggestions by that time.

Happy testing!
Sergey

***

CHANGES in 2.0

- Latest BOLSIG+ ver. 03/2016 solver is integrated.
- Maximum number of species and individual electron cross sections loading to BOLSIG+ are increased to 200 and 4000, respectively.
- Run-time generated log file with the list of all loaded electron processes is available after each run. This might be used for checking links between reactions and electron cross sections.
- Optional heat source term is added to set_conditions(HEAT_SOURCE=...).

The keywords PROCESS and ZDPLASKIN are no more used for linking reaction constant rates in the REACTIONS section of kinetic file (kinet.inp by default) with the rates calculated by BOLSIG+ solver from corresponding electron scattering cross sections (bolsigdb.dat by default).

Please update cross section headers similar to the following examples:

EXAMPLE A

IN kinet.inp
e + Ar => e + e + Ar^+   !   Bolsig Ar->Ar^+

IN bolsigdb.dat
IONIZATION
Ar -> Ar^+
  1.580e+1 / threshold energy
------------------------------------------------------------

EXAMPLE B

IN kinet.inp
e + Ar => e + Ar*   !   Bolsig Ar->Ar*

IN bolsigdb.dat
EXCITATION
Ar -> Ar*
  1.580e+1 / threshold energy
------------------------------------------------------------

EXAMPLE C

IN kinet.inp
e + Ar* => e + Ar   !   Bolsig Ar*->Ar

IN bolsigdb.dat
EXCITATION
Ar <-> Ar*
  1.580e+1 1.0 / threshold energy and stat weight ratio
------------------------------------------------------------

Venkat raman T N

unread,
Nov 1, 2021, 5:00:32 AM11/1/21
to Sergey Pancheshnyi, zdpl...@googlegroups.com
Dear Sergey,
             Long time.. Hope everything is going good at your end..

Very recently, I started putting some effort on moving my code to ZDPlasKin2.0a from ZDPlasKin1.3b. I'm facing the following issue during a call to ZDPlasKin_bolsig_rates(lbolsig_force):

A successful call example (In subroutine "ZDPlasKin_bolsig_rates(lbolsig_force)" from "ZDPlasKin_get_conditions" subroutine):
**********************************************
Error BEFORE lforce call =    3.21258545E+000 (= reduced field)
lforce =  T
 F (= lbolsig_Maxwell_EEDF)
Error AFTER lforce call =    2.00000000E+000 (= error)
**********************************************
i, j, k = *** 31 84 (print out of 31 variables stored in "bolsig_cfg" variable)
   5.00000000E+003   0.00000000E+000   3.21258545E+000   0.00000000E+000   7.16916196E+019   4.94722405E-005
   2.69222788E-004   1.41844831E-001   1.41348313E-006   1.09350748E-006   8.51454177E-007
   6.67281675E-007   0.00000000E+000   8.57332051E-001   5.28183823E-010   5.57735959E-010
   0.00000000E+000   5.45072311E-010   0.00000000E+000   4.82899625E-010   4.87139713E-010
   4.80064033E-007   5.49386057E-004   0.00000000E+000   0.00000000E+000   0.00000000E+000
   0.00000000E+000   0.00000000E+000   0.00000000E+000   0.00000000E+000   0.00000000E+000
Completed calling ZDPlasKin_bolsig_SolveBoltzmann !!!
***************************************************************
(Print out of variables after returning from ZDPlasKin_bolsig_rates -> Tgas, EbyN etc.)
   5.00000000E+003   3.21258545E+000   0.00000000E+000   1.94568021E+004   6.71039570E+005
   2.44343017E+004   2.08878357E+022   2.15577182E-011   8.33803347E-012   1.07347740E-011
***************************************************************
**********************************************
Error BEFORE lforce call =    3.21258545E+000
lforce =  F
 F
Error AFTER lforce call =    0.00000000E+000
**********************************************

An unsuccessful call example:
**********************************************
Error BEFORE lforce call =    3.30413208E+000 (= reduced field)
lforce =  T
 F (= lbolsig_Maxwell_EEDF)
Error AFTER lforce call =    2.00000000E+000 (= error)
**********************************************
i, j, k = *** 31 84 (print out of 31 variables stored in "bolsig_cfg" variable)
   5.00000000E+003   0.00000000E+000   3.30413208E+000   0.00000000E+000   7.16916196E+019   4.94722405E-005
   2.69222788E-004   1.41844831E-001   1.41348313E-006   1.09350748E-006   8.51454177E-007
   6.67281675E-007   0.00000000E+000   8.57332051E-001   5.28183823E-010   5.57735959E-010
   0.00000000E+000   5.45072311E-010   0.00000000E+000   4.82899625E-010   4.87139713E-010
   4.80064033E-007   5.49386057E-004   0.00000000E+000   0.00000000E+000   0.00000000E+000
   0.00000000E+000   0.00000000E+000   0.00000000E+000   0.00000000E+000   0.00000000E+000
Code throws division by zero error inside ZDPlasKin_bolsig_SolveBoltzmann !!!
Program received signal SIGFPE, Arithmetic exception.
0x00007fffe31b435a in bolsig_mp_solvebol_ () from obj/bolsig_x86_64.so
Missing separate debuginfos, use: debuginfo-install glibc-2.17-307.el7.1.x86_64
(gdb) bt
#0  0x00007fffe31b435a in bolsig_mp_solvebol_ () from obj/bolsig_x86_64.so
#1  0x00007fffe31ae94e in zdplaskin_bolsig_solveboltzmann_ () from obj/bolsig_x86_64.so
#2  0x000000000046afca in zdplaskin::zdplaskin_bolsig_rates (
    lbolsig_force=<error reading variable: Cannot access memory at address 0x2>) at src/zdplaskin_m.F90:496
#3  0x00000000004699d7 in zdplaskin::zdplaskin_get_conditions (
    gas_temperature=<error reading variable: Cannot access memory at address 0x2>,
    reduced_frequency=<error reading variable: Cannot access memory at address 0x64>,
    reduced_field=<error reading variable: Cannot access memory at address 0x1>,
    elec_temperature=<error reading variable: Cannot access memory at address 0x64>,
    elec_drift_velocity=<error reading variable: Cannot access memory at address 0x2>,
    elec_diff_coeff=1.0609978956802624e-313, elec_mobility_n=2.0887835689110546e+22,
    elec_mu_eps_n=<error reading variable: Cannot access memory at address 0x0>,
    elec_diff_eps_n=<error reading variable: Cannot access memory at address 0x0>,
    elec_frequency_n=<error reading variable: Cannot access memory at address 0x0>, elec_power_n=2.1557718236194595e-11,
    elec_power_elastic_n=8.3380334720825002e-12, elec_power_inelastic_n=1.0734774037669559e-11, elec_eedf=...)
    at src/zdplaskin_m.F90:794
#4  0x000000000047536a in equil_mixture () at src/Ecrit_vs_T.F90:164
#5  0x0000000000403632 in main ()
#6  0x00007fffe26d1555 in __libc_start_main () from /lib64/libc.so.6
#7  0x0000000000403539 in _start ()

As you can see clearly, a very tiny change in the E/N value from 3.21258545E+000Td to 3.30413208E+000Td is resulting in an arithmetic exception (division by zero) inside the BOLSIG+ library / shared object. This doesn't make sense, but I'm helpless considering the call ends inside the shared object. The "elec_diff_coeff" reaches a value close to 1e-313, for example.

I'm running the code on Linux 3.10.0-1062.12.1.el7.x86_64, ifort version 2019.1.144. 

If you could provide the debug version of the shared object, if possible, I'd be able to determine precisely which line is causing the issue.

What remedy would you suggest here? Kindly let me know your thoughts. That'd be very much appreciated. Thanks!

Regards,
Venkat

--
You received this message because you are subscribed to the Google Groups "ZDPlasKin" group.
To unsubscribe from this group and stop receiving emails from it, send an email to zdplaskin+...@googlegroups.com.
To post to this group, send email to zdpl...@googlegroups.com.
Visit this group at https://groups.google.com/group/zdplaskin.
For more options, visit https://groups.google.com/d/optout.


--
what you give is what you get returned..
Dil Se...
Reply all
Reply to author
Forward
0 new messages