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

Simulation solver workflow #2730

Open
wants to merge 32 commits into
base: master
Choose a base branch
from

Conversation

andrewfullard
Copy link
Contributor

📝 Description

Type: 🚀 feature

Duplicates the existing simulation solver as a hopefully clean workflow setup.

🚦 Testing

How did you test these changes?

  • Testing pipeline
  • Other method (describe)
  • My changes can't be tested (explain why)

☑️ Checklist

  • I requested two reviewers for this pull request
  • I updated the documentation according to my changes
  • I built the documentation by applying the build_docs label

Note: If you are not allowed to perform any of these actions, ping (@) a contributor.

Copy link

codecov bot commented Jul 23, 2024

Codecov Report

Attention: Patch coverage is 1.55642% with 253 lines in your changes missing coverage. Please review.

Project coverage is 69.36%. Comparing base (3a391ae) to head (05e2b82).
Report is 12 commits behind head on master.

Files with missing lines Patch % Lines
tardis/workflows/simple_tardis_workflow.py 0.00% 142 Missing ⚠️
tardis/workflows/standard_tardis_workflow.py 0.00% 77 Missing ⚠️
tardis/workflows/workflow_logging.py 0.00% 34 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2730      +/-   ##
==========================================
- Coverage   70.87%   69.36%   -1.52%     
==========================================
  Files         209      212       +3     
  Lines       15589    15839     +250     
==========================================
- Hits        11049    10987      -62     
- Misses       4540     4852     +312     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@tardis-bot
Copy link
Contributor

tardis-bot commented Jul 23, 2024

*beep* *bop*

Hi, human.

The docs workflow has succeeded ✔️

Click here to see your results.

@andrewfullard andrewfullard marked this pull request as draft July 24, 2024 16:33


class StandardSimulationSolver:
def __init__(self, configuration):
Copy link
Contributor Author

Choose a reason for hiding this comment

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

If we want this to replace the full run_tardis etc it should probably be able to take in a configuration path and convert it to a configuration object. Probably as the only option.

def solve_simulation_state(
self,
estimated_values,
):
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Given that we are in the simulation solver class, perhaps this should just be in solve()

if u.isclose(
configuration.supernova.luminosity_wavelength_start, 0 * u.angstrom
):
self.luminosity_nu_end = np.inf * u.Hz
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is a mess that should be handled by the configuration

):
final_iteration_packet_count = self.real_packet_count

self.final_iteration_packet_count = int(final_iteration_packet_count)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is a mess that should be handled by the configuration

).to(u.Hz)

# montecarlo settings
self.total_iterations = int(configuration.montecarlo.iterations)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Casting to int should be handled by the configuration parser

)

# spectrum settings
self.integrated_spectrum_settings = configuration.spectrum.integrated
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is weird.

current_value = getattr(self.simulation_state, key)
estimated_value = estimated_values[key]
no_of_shells = (
self.simulation_state.no_of_shells if key != "t_inner" else 1
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This gets a bit messy due to the "special" status of t_inner in the convergence and configuration. Probably unavoidable without extremely rigid requirements on the config.

"t_inner"
]

def solve_plasma(
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This mess should be cleaned up with plasma restructures

iteration=self.completed_iterations,
)

virtual_packet_energies = self.transport_solver.run(
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Should be .solve


return transport_state, virtual_packet_energies

def initialize_spectrum_solver(
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is a mess and should probably be handled by the spectrum solver itself.

transport_state, virtual_packet_energies = self.solve_montecarlo(
self.final_iteration_packet_count, self.virtual_packet_count
)
self.initialize_spectrum_solver(
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Weird to be init at the end.

@tardis-bot
Copy link
Contributor

tardis-bot commented Jul 29, 2024

*beep* *bop*
Hi human,
I ran ruff on the latest commit (05e2b82).
Here are the outputs produced.
Results can also be downloaded as artifacts here.
Summarised output:

41	W293  	[*] Blank line contains whitespace
24	G004  	[ ] Logging statement uses f-string
24	W291  	[*] Trailing whitespace
23	F401  	[*] `astropy.units` imported but unused
20	E999  	[ ] SyntaxError: Expected a statement
18	UP008 	[*] Use `super()` instead of `super(__class__, self)`
14	I001  	[*] Import block is un-sorted or un-formatted
10	RET505	[ ] Unnecessary `elif` after `return` statement
6	E402  	[ ] Module level import not at top of cell
6	D202  	[*] No blank lines allowed after function docstring (found 1)
5	E722  	[ ] Do not use bare `except`
5	UP032 	[*] Use f-string instead of `format` call
4	E701  	[ ] Multiple statements on one line (colon)
4	W605  	[*] Invalid escape sequence: `\A`
3	RET506	[ ] Unnecessary `else` after `raise` statement
3	E712  	[*] Avoid equality comparisons to `True`; use `if latex_label:` for truth checks
3	E902  	[ ] No such file or directory (os error 2)
3	F405  	[ ] `HiddenPlasmaProperty` may be undefined, or defined from star imports
3	UP015 	[*] Unnecessary open mode parameters
2	C416  	[*] Unnecessary `list` comprehension (rewrite using `list()`)
2	PIE808	[*] Unnecessary `start` argument in `range`
2	FLY002	[*] Consider `f"{hash_string}_{nlte_prop}"` instead of string join
2	W292  	[*] No newline at end of file
2	F403  	[ ] `from tardis.plasma.properties.base import *` used; unable to detect undefined names
2	F811  	[*] Redefinition of unused `npt` from line 2
1	S605  	[ ] Starting a process with a shell: seems safe, but may be changed in the future; consider rewriting without `shell`
1	G001  	[ ] Logging statement uses `str.format`
1	F821  	[ ] Undefined name `s1`
1	UP004 	[*] Class `NLTEExcitationData` inherits from `object`
1	UP034 	[*] Avoid extraneous parentheses
1	TRY300	[ ] Consider moving this statement to an `else` block

Complete output(might be large):

.github/workflows/codespell.yml:3:4: E999 SyntaxError: Expected an expression
.github/workflows/codespell.yml:18:11: E701 Multiple statements on one line (colon)
.github/workflows/codespell.yml:39:26: W292 [*] No newline at end of file
.github/workflows/codestyle.yml:7:4: E999 SyntaxError: Expected an expression
.github/workflows/codestyle.yml:25:11: E701 Multiple statements on one line (colon)
.github/workflows/codestyle.yml:30:11: E701 Multiple statements on one line (colon)
.github/workflows/codestyle.yml:46:8: W291 [*] Trailing whitespace
.github/workflows/codestyle.yml:63:1: W293 [*] Blank line contains whitespace
.github/workflows/codestyle.yml:65:15: W291 [*] Trailing whitespace
.github/workflows/codestyle.yml:69:1: W293 [*] Blank line contains whitespace
.github/workflows/codestyle.yml:78:1: W293 [*] Blank line contains whitespace
.github/workflows/codestyle.yml:82:1: W293 [*] Blank line contains whitespace
.github/workflows/codestyle.yml:90:1: W293 [*] Blank line contains whitespace
.github/workflows/codestyle.yml:102:26: W291 [*] Trailing whitespace
.github/workflows/codestyle.yml:106:1: W293 [*] Blank line contains whitespace
.github/workflows/codestyle.yml:114:1: W293 [*] Blank line contains whitespace
.github/workflows/codestyle.yml:125:22: W291 [*] Trailing whitespace
.github/workflows/codestyle.yml:126:89: W291 [*] Trailing whitespace
.github/workflows/codestyle.yml:128:84: W291 [*] Trailing whitespace
.github/workflows/codestyle.yml:144:1: W293 [*] Blank line contains whitespace
.github/workflows/codestyle.yml:148:1: W293 [*] Blank line contains whitespace
.github/workflows/release.yml:7:4: E999 SyntaxError: Expected an expression
.github/workflows/release.yml:16:7: E701 Multiple statements on one line (colon)
.github/workflows/release.yml:57:1: W293 [*] Blank line contains whitespace
.github/workflows/release.yml:59:1: W293 [*] Blank line contains whitespace
.github/workflows/stardis-tests.yml:3:4: E999 SyntaxError: Expected an expression
.github/workflows/stardis-tests.yml:22:1: W293 [*] Blank line contains whitespace
.github/workflows/stardis-tests.yml:39:11: W291 [*] Trailing whitespace
.github/workflows/stardis-tests.yml:51:1: W293 [*] Blank line contains whitespace
.github/workflows/stardis-tests.yml:58:1: W293 [*] Blank line contains whitespace
.github/workflows/stardis-tests.yml:64:1: W293 [*] Blank line contains whitespace
.github/workflows/stardis-tests.yml:69:1: W293 [*] Blank line contains whitespace
.github/workflows/stardis-tests.yml:75:32: W291 [*] Trailing whitespace
.github/workflows/stardis-tests.yml:76:20: W292 [*] No newline at end of file
.mailmap:1:38: E999 SyntaxError: Expected an expression
README_TEMPLATE.rst:1:1: E999 SyntaxError: Expected a statement
conda-linux-64.lock:5:1: E999 SyntaxError: Expected class, function definition or async function definition after decorator
conda-lock.yml:14:10: E999 SyntaxError: Expected an expression
conda-osx-64.lock:5:1: E999 SyntaxError: Expected class, function definition or async function definition after decorator
conda-osx-arm64.lock:5:1: E999 SyntaxError: Expected class, function definition or async function definition after decorator
docs/_static/ruff_badge.json:1:1: E902 No such file or directory (os error 2)
docs/contributing/development/code_quality.rst:1:1: E999 SyntaxError: Expected an expression
docs/contributing/development/developer_faq.rst:1:1: E999 SyntaxError: Expected an expression
docs/contributing/development/developer_faq.rst:13:40: W291 [*] Trailing whitespace
docs/contributing/development/known_projects.inc:1:1: E999 SyntaxError: Expected a statement
docs/contributing/tools/hdf_writer.ipynb:cell 3:9:1: W293 [*] Blank line contains whitespace
docs/contributing/tools/hdf_writer.ipynb:cell 8:3:11: E999 SyntaxError: Simple statements must be separated by newlines or semicolons
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 2:1:1: I001 [*] Import block is un-sorted or un-formatted
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 2:1:8: F401 [*] `tardis` imported but unused
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 2:5:38: F401 [*] `tardis.io.atom_data.base.AtomData` imported but unused
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 2:7:20: F811 [*] Redefinition of unused `run_tardis` from cell 2, line 2
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 2:11:1: E402 Module level import not at top of cell
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 2:11:1: I001 [*] Import block is un-sorted or un-formatted
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 2:12:1: E402 Module level import not at top of cell
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 2:13:1: E402 Module level import not at top of cell
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 2:13:30: F401 [*] `astropy.units` imported but unused
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 2:14:1: E402 Module level import not at top of cell
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 2:15:1: E402 Module level import not at top of cell
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 2:16:1: E402 Module level import not at top of cell
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:2:5: D202 [*] No blank lines allowed after function docstring (found 1)
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:8:1: W293 Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:12:1: W293 Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:17:1: W293 [*] Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:22:1: W293 [*] Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:24:1: W293 [*] Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:26:1: W293 [*] Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:32:21: W291 [*] Trailing whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:35:5: D202 [*] No blank lines allowed after function docstring (found 1)
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:37:1: W293 Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:44:1: W293 [*] Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:54:5: D202 [*] No blank lines allowed after function docstring (found 1)
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:57:1: W293 Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:63:1: W293 Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:68:1: W293 [*] Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 4:75:5: RET505 Unnecessary `elif` after `return` statement
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:1:32: W291 [*] Trailing whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:2:35: W291 [*] Trailing whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:3:37: W291 [*] Trailing whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:4:41: W291 [*] Trailing whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:5:31: W291 [*] Trailing whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:6:31: W291 [*] Trailing whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:8:5: D202 [*] No blank lines allowed after function docstring (found 1)
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:11:1: W293 Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:13:112: W291 Trailing whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:15:1: W293 Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:49:1: W293 [*] Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:54:33: UP032 [*] Use f-string instead of `format` call
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:56:33: UP032 [*] Use f-string instead of `format` call
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 7:57:1: W293 [*] Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 8:9:6: UP015 [*] Unnecessary open mode parameters
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 8:12:6: UP015 [*] Unnecessary open mode parameters
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 8:16:19: C416 Unnecessary `list` comprehension (rewrite using `list()`)
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 8:17:23: C416 Unnecessary `list` comprehension (rewrite using `list()`)
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 9:2:5: D202 [*] No blank lines allowed after function docstring (found 1)
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 9:4:1: W293 Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 9:11:1: W293 Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 10:2:5: D202 [*] No blank lines allowed after function docstring (found 1)
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 10:4:1: W293 Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 10:18:1: W293 [*] Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 10:30:1: W293 [*] Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 10:44:1: W293 [*] Blank line contains whitespace
docs/contributing/tools/profiling/tardis_profiling_threads.ipynb:cell 10:45:43: UP032 [*] Use f-string instead of `format` call
docs/index.rst:1:1: E999 SyntaxError: Expected a statement
docs/index.rst:21:51: W291 [*] Trailing whitespace
docs/index.rst:43:76: W291 [*] Trailing whitespace
docs/index.rst:44:64: W291 [*] Trailing whitespace
docs/index.rst:45:71: W291 [*] Trailing whitespace
docs/index.rst:46:69: W291 [*] Trailing whitespace
docs/index.rst:47:68: W291 [*] Trailing whitespace
docs/index.rst:66:1: W293 [*] Blank line contains whitespace
docs/index.rst:79:1: W293 [*] Blank line contains whitespace
docs/index.rst:102:1: W293 [*] Blank line contains whitespace
docs/io/configuration/components/models/converters/arepo_to_tardis.ipynb:cell 6:1:1: I001 [*] Import block is un-sorted or un-formatted
docs/io/configuration/components/models/converters/arepo_to_tardis.ipynb:cell 6:1:17: F401 [*] `numpy` imported but unused
docs/io/configuration/components/models/converters/arepo_to_tardis.ipynb:cell 6:4:8: F401 [*] `json` imported but unused
docs/io/configuration/components/models/csvy_full_rad.csvy:1:4: E999 SyntaxError: Expected an expression
docs/physics/tardisgamma/index.rst:1:1: E902 No such file or directory (os error 2)
docs/physics/tardisgamma/packetinitialization.rst:1:1: E902 No such file or directory (os error 2)
docs/resources/code_comparison/toy_models/blondin_compare.csvy:1:4: E999 SyntaxError: Expected an expression
docs/resources/code_comparison/toy_models/blondin_compare_01.csvy:1:4: E999 SyntaxError: Expected an expression
docs/resources/code_comparison/toy_models/blondin_compare_06.csvy:1:4: E999 SyntaxError: Expected an expression
docs/workflows/simple_workflow.ipynb:cell 7:10:26: W605 [*] Invalid escape sequence: `\A`
docs/workflows/simple_workflow.ipynb:cell 7:11:40: W605 [*] Invalid escape sequence: `\A`
docs/workflows/standard_workflow.ipynb:cell 7:10:26: W605 [*] Invalid escape sequence: `\A`
docs/workflows/standard_workflow.ipynb:cell 7:11:40: W605 [*] Invalid escape sequence: `\A`
tardis/energy_input/util.py:383:5: RET505 Unnecessary `elif` after `return` statement
tardis/io/model/parse_radiation_field_configuration.py:118:13: G004 Logging statement uses f-string
tardis/model/matter/composition.py:206:9: RET505 Unnecessary `else` after `return` statement
tardis/plasma/__init__.py:2:63: W291 Trailing whitespace
tardis/plasma/__init__.py:5:32: F401 `tardis.plasma.base.BasePlasma` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/plasma/base.py:11:1: F403 `from tardis.plasma.properties.base import *` used; unable to detect undefined names
tardis/plasma/base.py:45:9: RET505 Unnecessary `else` after `return` statement
tardis/plasma/base.py:46:18: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/base.py:53:9: RET506 Unnecessary `else` after `raise` statement
tardis/plasma/base.py:54:18: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/base.py:111:17: E722 Do not use bare `except`
tardis/plasma/base.py:144:44: F405 `PreviousIterationProperty` may be undefined, or defined from star imports
tardis/plasma/base.py:153:46: F405 `Input` may be undefined, or defined from star imports
tardis/plasma/base.py:273:13: G004 Logging statement uses f-string
tardis/plasma/base.py:296:20: F401 [*] `pygraphviz` imported but unused
tardis/plasma/base.py:297:9: E722 Do not use bare `except`
tardis/plasma/base.py:306:16: E712 Avoid equality comparisons to `True`; use `if latex_label:` for truth checks
tardis/plasma/base.py:327:16: E712 Avoid equality comparisons to `True`; use `if latex_label:` for truth checks
tardis/plasma/base.py:333:16: E712 Avoid equality comparisons to `True`; use `if latex_label:` for truth checks
tardis/plasma/base.py:383:9: E722 Do not use bare `except`
tardis/plasma/base.py:429:35: F405 `HiddenPlasmaProperty` may be undefined, or defined from star imports
tardis/plasma/base.py:447:29: E722 Do not use bare `except`
tardis/plasma/properties/atomic.py:6:28: F401 [*] `radioactivedecay` imported but unused
tardis/plasma/properties/atomic.py:11:33: F401 [*] `tardis.constants` imported but unused
tardis/plasma/properties/atomic.py:379:17: UP032 [*] Use f-string instead of `format` call
tardis/plasma/properties/atomic.py:558:9: RET505 Unnecessary `else` after `return` statement
tardis/plasma/properties/atomic.py:589:9: RET505 Unnecessary `else` after `return` statement
tardis/plasma/properties/atomic.py:602:17: G004 Logging statement uses f-string
tardis/plasma/properties/atomic.py:643:9: RET505 Unnecessary `else` after `return` statement
tardis/plasma/properties/base.py:78:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/base.py:117:25: G004 Logging statement uses f-string
tardis/plasma/properties/base.py:135:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/base.py:163:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/base.py:178:9: RET505 Unnecessary `else` after `return` statement
tardis/plasma/properties/continuum_processes/__init__.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/properties/continuum_processes/__init__.py:2:5: F401 `tardis.plasma.properties.continuum_processes.photo_ion_rate_coeff.PhotoIonRateCoeff` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/plasma/properties/continuum_processes/__init__.py:4:1: F403 `from tardis.plasma.properties.continuum_processes.rates import *` used; unable to detect undefined names
tardis/plasma/properties/continuum_processes/__init__.py:6:5: F401 `tardis.plasma.properties.continuum_processes.recomb_rate_coeff.StimRecombRateFactor` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/plasma/properties/continuum_processes/__init__.py:7:5: F401 `tardis.plasma.properties.continuum_processes.recomb_rate_coeff.SpontRecombRateCoeff` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/plasma/properties/continuum_processes/__init__.py:8:5: F401 `tardis.plasma.properties.continuum_processes.recomb_rate_coeff.StimRecombRateCoeff` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/plasma/properties/continuum_processes/fast_array_util.py:3:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/properties/general.py:4:30: F401 [*] `astropy.units` imported but unused
tardis/plasma/properties/general.py:33:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/general.py:74:21: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/general.py:118:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/helium_nlte.py:53:13: UP034 [*] Avoid extraneous parentheses
tardis/plasma/properties/helium_nlte.py:130:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/helium_nlte.py:182:21: E722 Do not use bare `except`
tardis/plasma/properties/helium_nlte.py:185:29: G004 Logging statement uses f-string
tardis/plasma/properties/helium_nlte.py:218:23: S605 Starting a process with a shell: seems safe, but may be changed in the future; consider rewriting without `shell`
tardis/plasma/properties/helium_nlte.py:235:18: UP015 [*] Unnecessary open mode parameters
tardis/plasma/properties/helium_nlte.py:238:36: PIE808 [*] Unnecessary `start` argument in `range`
tardis/plasma/properties/helium_nlte.py:261:69: F821 Undefined name `s1`
tardis/plasma/properties/ion_population.py:206:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/ion_population.py:291:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/ion_population.py:370:25: G004 Logging statement uses f-string
tardis/plasma/properties/ion_population.py:424:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/ion_population.py:495:25: G004 Logging statement uses f-string
tardis/plasma/properties/level_population.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/properties/level_population.py:28:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/nlte.py:2:8: F401 [*] `os` imported but unused
tardis/plasma/properties/nlte.py:4:17: F401 [*] `numpy` imported but unused
tardis/plasma/properties/nlte.py:10:53: F401 [*] `tardis.plasma.properties.ion_population.PhiSahaNebular` imported but unused
tardis/plasma/properties/nlte_excitation_data.py:8:26: UP004 [*] Class `NLTEExcitationData` inherits from `object`
tardis/plasma/properties/nlte_rate_equation_solver.py:302:25: UP032 [*] Use f-string instead of `format` call
tardis/plasma/properties/nlte_rate_equation_solver.py:302:25: G001 Logging statement uses `str.format`
tardis/plasma/properties/nlte_rate_equation_solver.py:311:25: G004 Logging statement uses f-string
tardis/plasma/properties/partition_function.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/properties/partition_function.py:145:9: RET505 Unnecessary `elif` after `return` statement
tardis/plasma/properties/partition_function.py:161:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/partition_function.py:181:25: G004 Logging statement uses f-string
tardis/plasma/properties/partition_function.py:192:21: G004 Logging statement uses f-string
tardis/plasma/properties/partition_function.py:199:21: G004 Logging statement uses f-string
tardis/plasma/properties/partition_function.py:252:21: RET506 Unnecessary `else` after `raise` statement
tardis/plasma/properties/partition_function.py:395:21: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/plasma_input.py:2:5: F401 [*] `tardis.plasma.properties.base.ArrayInput` imported but unused
tardis/plasma/properties/radiative_properties.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/properties/radiative_properties.py:42:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/radiative_properties.py:178:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/rate_matrix_index.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/tests/test_complete_plasmas.py:149:27: FLY002 Consider `f"{hash_string}_{prop}"` instead of string join
tardis/plasma/tests/test_complete_plasmas.py:154:39: FLY002 Consider `f"{hash_string}_{nlte_prop}"` instead of string join
tardis/plasma/tests/test_hdf_plasma.py:1:17: F401 [*] `numpy` imported but unused
tardis/plasma/tests/test_nlte_excitation.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/tests/test_nlte_excitation.py:5:27: F401 [*] `numpy.testing.assert_allclose` imported but unused
tardis/plasma/tests/test_nlte_solver.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/tests/test_nlte_solver.py:5:25: F811 [*] Redefinition of unused `npt` from line 2
tardis/plasma/tests/test_plasma_continuum.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/simulation/base.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/simulation/base.py:155:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/simulation/base.py:199:13: RET506 Unnecessary `else` after `raise` statement
tardis/simulation/base.py:263:17: G004 Logging statement uses f-string
tardis/simulation/base.py:270:9: RET505 Unnecessary `else` after `return` statement
tardis/simulation/base.py:451:13: G004 Logging statement uses f-string
tardis/simulation/base.py:549:13: G004 Logging statement uses f-string
tardis/simulation/base.py:656:25: G004 Logging statement uses f-string
tardis/simulation/base.py:659:13: G004 Logging statement uses f-string
tardis/simulation/base.py:664:13: G004 Logging statement uses f-string
tardis/simulation/base.py:715:13: TRY300 Consider moving this statement to an `else` block
tardis/simulation/base.py:717:26: G004 Logging statement uses f-string
tardis/visualization/widgets/shell_info.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/widgets/shell_info.py:1:25: F401 [*] `tardis.base.run_tardis` imported but unused
tardis/visualization/widgets/shell_info.py:2:51: F401 [*] `tardis.io.atom_data.atom_web_download.download_atom_data` imported but unused
tardis/visualization/widgets/shell_info.py:12:17: F401 [*] `numpy` imported but unused
tardis/visualization/widgets/shell_info.py:299:25: PIE808 [*] Unnecessary `start` argument in `range`
tardis/workflows/simple_tardis_workflow.py:218:17: G004 Logging statement uses f-string
tardis/workflows/simple_tardis_workflow.py:430:17: G004 Logging statement uses f-string
tardis/workflows/standard_tardis_workflow.py:172:13: G004 Logging statement uses f-string
tardis/workflows/standard_tardis_workflow.py:212:17: G004 Logging statement uses f-string
tardis/workflows/workflow_logging.py:69:13: G004 Logging statement uses f-string
tardis/workflows/workflow_logging.py:107:21: G004 Logging statement uses f-string
tardis_env3.yml:3:10: E999 SyntaxError: Expected an expression
Found 237 errors.
[*] 111 fixable with the `--fix` option (37 hidden fixes can be enabled with the `--unsafe-fixes` option).

@Rodot- Rodot- mentioned this pull request Aug 14, 2024
6 tasks
@andrewfullard andrewfullard marked this pull request as ready for review August 15, 2024 16:29
@tardis-bot
Copy link
Contributor

tardis-bot commented Aug 15, 2024

*beep* *bop*
Hi human,
I ran benchmarks as you asked comparing master (3a391ae) and the latest commit (05e2b82).
Here are the logs produced by ASV.
Results can also be downloaded as artifacts here.

Significantly changed benchmarks:

All benchmarks:

Benchmarks that have stayed the same:

| Change   | Before [47d64bfb] <master>   | After [05e2b827]    | Ratio   | Benchmark (Parameter)                                                                                                               |
|----------|------------------------------|---------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------|
|          | 2.81±0.7μs                   | 4.16±0.8μs          | ~1.48   | transport_montecarlo_vpacket.BenchmarkMontecarloMontecarloNumbaVpacket.time_trace_bad_vpacket                                       |
|          | 42.9±30μs                    | 51.7±30μs           | ~1.20   | transport_montecarlo_interaction.BenchmarkTransportMontecarloInteraction.time_line_scatter                                          |
|          | 2.96±0.05ms                  | 3.48±0.05ms         | ~1.18   | opacities_opacity_state.BenchmarkOpacitiesOpacityState.time_opacity_state_initialize('scatter')                                     |
|          | 23.3±6μs                     | 26.6±8μs            | ~1.14   | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_generate_rpacket_last_interaction_tracker_list |
|          | 1.51±0.4μs                   | 1.69±0.4μs          | ~1.12   | transport_geometry_calculate_distances.BenchmarkTransportGeometryCalculateDistances.time_calculate_distance_line                    |
|          | 3.96±0ms                     | 4.36±0.02ms         | ~1.10   | opacities_opacity_state.BenchmarkOpacitiesOpacityState.time_opacity_state_initialize('macroatom')                                   |
|          | 2.42±1μs                     | 2.19±1μs            | ~0.91   | transport_montecarlo_estimators_radfield_estimator_calcs.BenchmarkMontecarloMontecarloNumbaPacket.time_update_line_estimators       |
|          | 581±100ns                    | 621±200ns           | 1.07    | opacities_opacity.BenchmarkMontecarloMontecarloNumbaOpacities.time_pair_creation_opacity_calculation                                |
|          | 511±100ns                    | 541±200ns           | 1.06    | opacities_opacity.BenchmarkMontecarloMontecarloNumbaOpacities.time_compton_opacity_calculation                                      |
|          | 2.69±0.4ms                   | 2.82±0.5ms          | 1.05    | transport_montecarlo_single_packet_loop.BenchmarkTransportMontecarloSinglePacketLoop.time_single_packet_loop                        |
|          | 709±8ns                      | 723±2ns             | 1.02    | transport_montecarlo_interaction.BenchmarkTransportMontecarloInteraction.time_thomson_scatter                                       |
|          | 3.30±0.7μs                   | 3.36±0.5μs          | 1.02    | transport_montecarlo_vpacket.BenchmarkMontecarloMontecarloNumbaVpacket.time_trace_vpacket_within_shell                              |
|          | 38.5±0.2s                    | 39.1±0.04s          | 1.01    | run_tardis.BenchmarkRunTardis.time_run_tardis                                                                                       |
|          | 1.05±0m                      | 1.06±0m             | 1.01    | run_tardis.BenchmarkRunTardis.time_run_tardis_rpacket_tracking                                                                      |
|          | 2.08±0m                      | 2.10±0m             | 1.01    | spectrum_formal_integral.BenchmarkTransportMontecarloFormalIntegral.time_FormalIntegrator_functions                                 |
|          | 206±0.1ns                    | 210±0.07ns          | 1.01    | spectrum_formal_integral.BenchmarkTransportMontecarloFormalIntegral.time_intensity_black_body                                       |
|          | 621±100ns                    | 621±100ns           | 1.00    | opacities_opacity.BenchmarkMontecarloMontecarloNumbaOpacities.time_photoabsorption_opacity_calculation                              |
|          | 31.5±0.04μs                  | 31.5±0.1μs          | 1.00    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_generate_rpacket_tracker_list                  |
|          | 1.23±0.01μs                  | 1.22±0μs            | 0.99    | transport_geometry_calculate_distances.BenchmarkTransportGeometryCalculateDistances.time_calculate_distance_boundary                |
|          | 1.74±0.02ms                  | 1.73±0ms            | 0.99    | transport_montecarlo_main_loop.BenchmarkTransportMontecarloMontecarloMainLoop.time_montecarlo_main_loop                             |
|          | 67.0±0.2ms                   | 66.4±0.3ms          | 0.99    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_rpacket_trackers_to_dataframe                  |
|          | 6.52±1μs                     | 6.41±1μs            | 0.98    | transport_montecarlo_vpacket.BenchmarkMontecarloMontecarloNumbaVpacket.time_trace_vpacket                                           |
|          | 8.08±2μs                     | 7.58±2μs            | 0.94    | transport_montecarlo_vpacket.BenchmarkMontecarloMontecarloNumbaVpacket.time_trace_vpacket_volley                                    |
|          | 46.8±20μs                    | 43.4±20μs           | 0.93    | transport_montecarlo_interaction.BenchmarkTransportMontecarloInteraction.time_line_emission                                         |

If you want to see the graph of the results, you can check it here

@Rodot-
Copy link
Contributor

Rodot- commented Aug 15, 2024

Have the tests been run recently? I don't think the notebook should be able to run as there is no opacity state passed to the transport solver

@Rodot-
Copy link
Contributor

Rodot- commented Aug 15, 2024

Unless I'm missing something, I believe this needs to be rebased/merge in master

tardis/workflows/workflow_logging.py Outdated Show resolved Hide resolved
tardis/workflows/standard_simulation.py Outdated Show resolved Hide resolved
tardis/workflows/standard_simulation.py Outdated Show resolved Hide resolved
@andrewfullard andrewfullard marked this pull request as draft August 26, 2024 13:48
jvshields
jvshields previously approved these changes Oct 14, 2024
Copy link
Contributor

@jvshields jvshields left a comment

Choose a reason for hiding this comment

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

Look good, but we'll want to set up a regression test to validate that it produces the same output as the normal simulation. Issue #2856

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants