Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release version 0.1.0 #40

Merged
merged 24 commits into from
Aug 9, 2024
Merged

Release version 0.1.0 #40

merged 24 commits into from
Aug 9, 2024

Conversation

AntonReinhard
Copy link
Member

Releases version 0.1.0 to main

Do not squash

szabo137 and others added 24 commits June 22, 2023 13:28
In this PR adds `QEDbase=0.1.4` to the dependencies and a dummy
function, which checks if `QEDbase` is installed. This status is also
reflected in the README.

The commit resulting from merging this PR is supposed to be tagged as
`v0.1.0-dev` and can be registered.
Setup CI for unit tests. Use `SetupDevEnv.jl` project to setup test
environment. The script setups all QED dependencies to the current `dev`
branch.
- use blue style to format source code
- add CI job to verify source code shape
- original code from @szabo137

solves: #9
In an offline discussion, we decided to remove the `Manifest.toml`s from
the library, since a library should build its dependencies from scratch
every time.
Beside the changes in the `CompatHelper.yml` I did also:

- Generated a ssh key pair for the deployment and add it to the
repository like described in the [compat helper
documentation](https://juliaregistries.github.io/CompatHelper.jl/stable/#Creating-SSH-Key).

fixes: #16
This if-condition avoids, that the compat helper is executed in forks.

I tested with a branch in qed-project/qedfields.jl:
https://github.com/QEDjl-project/QEDfields.jl/actions/runs/6573913034
and on my fork SimeonEhrig/qedfields.jl:
https://github.com/SimeonEhrig/QEDfields.jl/actions/runs/6573903326
This PR adds an abstract interface for dealing with pulsed plane-wave
fields in the context of pulsed-perturbative QED. As the root type of
all background fields, to be used in the strong field part of `QED.jl`,
we introduce the abstract base type `AbstractBackgroundField`. However,
the interface is currently defined for pulsed plane-wave fields (see
below).

## Definition of the interface

The base type of the interface is `AbstractPulsedPlaneWaveFields`, where
the following interface functions are mandatory

```Julia
reference_momentum(::AbstractPulsedPlaneWaveFields) # return the reference momentum of the field
domain(::AbstractPulsedPlaneWaveFields) # return the interval, on which the BG field is non-zero
phase_duration(::AbstractPulsedPlaneWaveFields) # return the extent of the BG field in the phase variable phi
_pulse_envelope(::AbstractPulsedPlaneWaveFields, phi::Real) # return the value of the envelope function of the BG field in the phase variable phi, i.e. the phase profile 
```

The first three functions are just accessor functions for static
properties of the background field. The last function `_pulse_envelope`
defines the shape of the pulse, and it only needs to be implemented on
one single value of $\phi$. With that, the following functions were
implemented as well

```Julia
pulse_envelope(::AbstractPulsedPlaneWaveFields,phi::Real) # return the value of the envelope function at phi if phi is in the domain, and zero otherwise
_amplitude(::AbstractPulsedPlaneWaveFields, pol::AbstactDefinitePolarization,phi::Real) # return envelope times oscillator for given polarisation direction
amplitude(::AbstractPulsedPlaneWaveFields, pol::AbstactDefinitePolarization,phi::Real) # same as _amplitude, but return zero if phi is not in the domain
generic_spectrum(::AbstractPulsedPlaneWaveFields,pnum::Real) # return the Fourier transform of the amplitude at a given pnum
```

For each function, which is defined for `phi::Real` or `pnum::Real`, the
respective version for multiple values, i.e.
`phi::AbstractVector{<:Real}` and `pnum::AbstractVector{<:Real}` is also
implemented.

For the generic spectrum, the implementation is simply based on `QuadGK`
and therefore worthy of improvement.

---------

Co-authored-by: Uwe Hernandez Acosta <u.hernandez@hzdr.de>
…sting compat) (#23)

This pull request sets the compat entry for the `QuadGK` package to `2`.
This keeps the compat entries for earlier versions.



Note: I have not tested your package with this new compat entry.
It is your responsibility to make sure that your package tests pass
before you merge this pull request.
Note: Consider registering a new release of your package immediately
after merging this PR, as downstream packages may depend on this for
tests to pass.

Co-authored-by: CompatHelper Julia <compathelper_noreply@julialang.org>
…keep existing compat) (#22)

This pull request sets the compat entry for the `IntervalSets` package
to `0.7`.
This keeps the compat entries for earlier versions.



Note: I have not tested your package with this new compat entry.
It is your responsibility to make sure that your package tests pass
before you merge this pull request.
Note: Consider registering a new release of your package immediately
after merging this PR, as downstream packages may depend on this for
tests to pass.

Co-authored-by: CompatHelper Julia <compathelper_noreply@julialang.org>
In this PR, we add an implementation of the background field interface
for the cos-square pulse. Unit tests are adjusted accordingly.

Coincidently, a docstring in the interface was fixed as well.

---------

Co-authored-by: Uwe Hernandez Acosta <u.hernandez@hzdr.de>
This opts out the `QEDbase` namespace and adds the dependency on
`QEDcore`.

This is part of the general restructuring of `QED.jl`, see
QEDjl-project/QuantumElectrodynamics.jl#35 for details.

---------

Co-authored-by: Uwe Hernandez Acosta <u.hernandez@hzdr.de>
With this PR, QEDfields should use `base_state` from QEDcore, not from
QEDbase.

This is part of the general restructuring of `QED.jl`, see
QEDjl-project/QuantumElectrodynamics.jl#35 for details.

---------

Co-authored-by: Uwe Hernandez Acosta <u.hernandez@hzdr.de>
The namespace shadowing of QEDbase is revoked. This is part of the
restructuring of `QED.jl`. See
QEDjl-project/QuantumElectrodynamics.jl#35 for details.

---------

Co-authored-by: Uwe Hernandez Acosta <u.hernandez@hzdr.de>
- Remove dev dependencies
- Add compat entries for QED dependencies
Copy link
Member

@szabo137 szabo137 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good for me! Thanks for taking care of that 👌😊

@AntonReinhard AntonReinhard merged commit b9a015c into main Aug 9, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants