Giter Site home page Giter Site logo

thestaralight / semiclassicalsfi.jl Goto Github PK

View Code? Open in Web Editor NEW
8.0 3.0 0.0 2.7 MB

Implementation of classical/semiclassical methods in strong-field ionization of atoms and molecules. [Note: This library is currently under construction, and would be available in the recent months! :D]

Home Page: https://TheStarAlight.github.io/SemiclassicalSFI.jl

License: Apache License 2.0

Julia 100.00%
physics ultrafast-optics julia strong-field-ionization

semiclassicalsfi.jl's People

Contributors

thestaralight avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

semiclassicalsfi.jl's Issues

Help Wanted: new version of this package slows down on real mechine

Dear Developer:
Thank you for this amazing programme!

I first set it up in a Virtual Machine without using CUDA about a week ago. and it runs just fine.I tested the 'minimal example', after changing some variable and disabling GPU, the program runs at a speed of 1.6 s/it using 4 threats. latter I'd like to install it on a real machine with CUDA enabled. yet after changing most key words to fit the new package, this program runs at 22 s/it using 4 threats with CUDA enabled, and 1 min/it with CUDA disabled. The speed of newer version of pkg is also tested in my VM and the slow down is also observed (90s/it under -t 4 ).

the latter PC could passed the test(SemiclassicalSFI) in 260min. Both are using pkg 1.4 version, though key words are different but the inputs are the same. I was wondering if this is anything to do with my environments, both are using julia 1.92 installed from snap, and python 3.10, in ubuntu 22.04.

I have enclosed both input file in the end to see if there is anything wrong. please inform me if more information is needed.

In the end, I'd like to thank you again for sharing this well documented package, as an experimentalist this allow us to better understand our experiments.
Best Regard
Kefei


enclosed input files

Inputs in real that runs slow______

using SemiclassicalSFI

filename = "SCSFI_HydLike_Ip_0.5662.h5"  # output file name


t = SemiclassicalSFI.Targets.HydrogenLikeAtom(Ip=0.5662, Z=1)


l = SemiclassicalSFI.Lasers.Cos2Laser(peak_int=3e14, wave_len=800, cyc_num=6, ellip=0.0)


SemiclassicalSFI.performSFI(

    init_cond_method = :ADK,
    laser = l,
    target = t,
    

    sample_t_interval = (-300,300),
    sample_t_num = 20000,

    final_p_max = (3,3,3),
    final_p_num = (800,800,1),

    traj_t_final = 400,
    save_3D_spec = false,

    ss_kd_max = 2.,
    ss_kd_num = 500,
    ss_kz_max = 2.,
    ss_kz_num = 150,

    traj_phase_method = :CTMC,

    traj_GPU = true,

    save_path = filename
    )

Inputs in VM that runs faster______

using SemiclassicalSFI

filename = "SCSFI_HydLike_Ip_0.5662.h5"  # output file name


t = SemiclassicalSFI.Targets.HydrogenLikeAtom(Ip=0.5662, Z=1)


l = SemiclassicalSFI.Lasers.Cos2Laser(peak_int=3e14, wave_len=800, cyc_num=6, ellip=0.0)


SemiclassicalSFI.performSFI(

    ionRateMethod = :ADK,
    laser = l,
    target = t,
    

    sample_tSpan = (-300,300),
    sample_tSampleNum = 20000,


    finalMomentum_pMax = (3,3,3),
    finalMomentum_pNum = (800,800,1),

    simu_tFinal = 400,
    save_3D_momentumSpec = false,

    ss_kdMax = 2.,
    ss_kdNum = 500,
    ss_kzMax = 2.,
    ss_kzNum = 150,

    simu_phaseMethod = :CTMC,

    simu_GPU = false,

    save_fileName = filename
    )

Two Issues on Development of Molecular Systems

Recently we will focus on building the basic framework of molecular simulations, like we did in the atomic ones. Here I'll present two issues calling for discussions on the (semi)classical simulations of molecular systems.

  1. Concrete types relating to molecules need to be set up, which should inherit Target supertype. But I wonder what concrete types should be created. Is a single type Molecule <: Target enough? What basic properties should be set?
  2. WFAT rate method would be our recent focus, which requires calculations on the molecular orbital. However, due to lack of stable and well-maintained quantum chemistry packages in current Julia ecosystem, we cannot rely on a single package. My opinion is that we adopt pyscf (in Python) as the first QC package, and leave an interface for future support for other packages. How does it sound?

[Atomic/misc] Current Assignments on Development on Atomic System

While we have published v1.2, atomic part of the library still needs perfection, and some functions are still incomplete. Here I'll list some TODOs.

  • ADK
  • SFA
  • SFA-AE's rate prefix. [Branch name: RatePrefix]
  • Non-dipole simulation support. [Branch name: Non-dipole]
  • Saving simulation abstract in the h5 file. [Branch name: SimulationAbstract]

Anyone who's interested may create a branch from dev, and name it as its feature name.

[WFAT] Adding support for libcint integration to accelerate XC potential calculation

Currently the XC potential calculation is the most time-consuming task in WFAT, and is carried out by calling pyscf. However, the PyCall does not support multi-threading, and data transmission between Julia and Python would lower the efficiency. Calling libcint directly would solve this bottleneck in efficiency.

  • Directly calling the libcint as the XC potential integration scheme

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.