Recent Releases of tidalpy
tidalpy - TidalPy v0.6.8
Changes
TidalPy.tides.modes.collapse_multilayer_modesnow checks for ill-formedradius_arraysand will raise an error if it detects a problem.- Improved how
projection_mapdisplays colorbar numbers.
Fixes
- Fixed issue where
TidalPy.tides.modes.collapse_multilayer_modeswas not treating macro-layer boundaries correctly.
GitHub Tracked Changes
- v0.6.8 by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/81
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.6.7...v0.6.8
- Jupyter Notebook
Published by jrenaud90 9 months ago
tidalpy - TidalPy v0.6.7
Changes
TidalPy.tides.modes.collapse_multilayer_modesnow requires a tuple of rheology instances for both shear and bulk rheology. One for each macro layer. This allows different rheologies to be used for different layers.
Fixes
- Fixed some warnings that were showing up in the multilayer demo notebook.
GitHub Tracked Changes
- Ver0.6.7 by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/80
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.6.6...v0.6.7
- Jupyter Notebook
Published by jrenaud90 10 months ago
tidalpy - TidalPy v0.6.6
Changes
- Updated to work with CyRK v0.15.1
- This change results in about a 18% performance improvement for RadialSolver depending on the problem.
- Converted RadialSolver and EOSSolver status message to C++ strings.
- Updated some documentation.
Fixes
- Fixed potential issue where RadialSolver could use a very small or even negative maximum step size.
GitHub Tracked Changes
- Ver0.6.6 by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/79
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.6.5...v0.6.6
- Jupyter Notebook
Published by jrenaud90 10 months ago
tidalpy - v0.6.5
Changes
New
- Added test to check if structure arrays have been changed.
- Added debug flag to installation files to help with cython debugging.
Fixes
- Fixed issue where TidalPy structures (layers, planets, etc.) would return editable arrays instead of copies of arrays. This could lead to subsequent functions (like planet paint) changing the arrays. This fixes GitHub Issue #74.
- Fixed issue where shooting method was corrupting data when starting radius was too large (which happened for higher orders of l) This fixes GitHub Issue #72.
- Fixed broken demo notebooks.
GitHub Tracked Changes
- Structures now return copys of arrays (fix for data modification bug)… by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/75
- fixed bug introduced in last PR by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/76
- Isolating issue by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/77
- Ver0.6.5 by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/78
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.6.4...v0.6.5
- Jupyter Notebook
Published by jrenaud90 10 months ago
tidalpy - TidalPy v0.6.4
Changes
Dependencies: * Removed max version limit for platformdirs package
GitHub Tracked Changes
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.6.3...v0.6.4
- Jupyter Notebook
Published by jrenaud90 about 1 year ago
tidalpy - TidalPy v0.6.3
Changes
- Changes GitHub actions to avoid testing when not needed.
- Now supports Python 3.13
Fixes: * Removed various files that were being included in the manifest
Dependencies: * Updated to work with CyRK 0.13.3 * Updated to work with Numpy 2.x
GitHub Tracked Changes
- TidalPy v0.6.3 - Support for Python 3.13 and Numpy 2.x by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/71
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.6.2...v0.6.3
- Jupyter Notebook
Published by jrenaud90 about 1 year ago
tidalpy - TidalPy v0.6.2
Changes
- Bumping version to integrate into conda-forge.
- Fixed some build processes that could cause both numpy 1.X and 2.X to be installed and inconsistent use (only affected MacOS)
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.6.1...v0.6.2
- Jupyter Notebook
Published by jrenaud90 about 1 year ago
tidalpy - TidalPy v0.6.1
Changes
Benchmarks and Performance
- Added performance benchmark for
TidalPy.RadialSolver.helpers.
Fixes
- Fixed memory leak that was occurring in the EOS Solver (therefore also RadialSolver) due to CyRK's CySolverSolution not being dereferenced (this is a problem with CyRK, but hack applied to TidalPy until a fix can be made to CyRK).
Performance
- Improved
TidalPy.RadialSolver.helpers.build_rs_input_from_dataperformance by factor of 10x to 150x depending on layer structure. - Improved
TidalPy.RadialSolver.helpers.build_rs_input_homogeneous_layersperformance by factor of 15% to 3.5x depending on layer structure. - Improved
TidalPy.RadialSolver.radial_solverperformance by around 10% depending on layer structure.
GitHub Tracked Changes
- 0.6.1 - Improved RS Helper Performance by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/70
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.6.0...v0.6.1
- Jupyter Notebook
Published by jrenaud90 over 1 year ago
tidalpy - TidalPy v0.6.0
Changes
Removed
- Removed support for the older non-cythonized
TidalPy.radial_solvermodule in favor ofTidalPy.RadialSolver
RadialSolver Changes
- Moved RadialSolver's Boundary Condition finder to its own function in
TidalPy.RadialSolver.boundaries.surface_bc.pyxto allow it to be used by both the shooting and propagation matrix techniques. - Decoupled radial solver from shooting method.
- Moved the shooting method (formerly just called
cf_radial_solver) to a dedicated file to prep for a different dedicated file for the prop matrix solver. - Now
TidalPy.RadialSolver.solveronly contains driver functions and output structures.
- Moved the shooting method (formerly just called
- Added Propagation Matrix technique to RadialSolver
- This is simplified for now. Only planets with 1 solid, static, incompressible layer are allowed.
- Other assumptions can be approximated, e.g., liquid layers use a small shear modulus.
- Multiple layers should also work if you have discontinuities in density, shear, etc. within your "one layer".
- A cythonized solid fundamental matrix implementation can be found in
TidalPy.RadialSolver.PropMatrix.solid_matrix.
- New radial slicing scheme required:
- TidalPy now requires
radial_solverinput arrays to be defined in a precise manner: radius_arraymust start at 0.- Each layer's upper and lower radius must be in the
radius_array. That means if there is more than one layer there will be two identical radius values!- E.g., if a planet has a ICB at 1000km and a CMB at 3500km. Then
radius_arraymust be setup with 2 values of 1000km and 2 values of 3500km. - Other parameters should be defined on a "as layer" basis. So shear modulus at the 1st 1000km would be the shear of the inner core, at the 2nd 1000km it would be the shear modulus of the outer core. Likewise shear modulus at the 1st 3500km would be for the outer core and at the 2nd 3500km would be the shear modulus for the mantle. Same goes for density and bulk modulus.
- E.g., if a planet has a ICB at 1000km and a CMB at 3500km. Then
- TidalPy now requires
- Added warning to check for instabilities (based on large number of steps taken; requires
warnings=True). - Changes to
radial_solverarguments:- Many changes to the order as well as additions and removals of arguments to
radial_solverhighly suggest looking through the updated documentation. radial_solverno longer requiresgravity_array.- New with this update is a self-consistent equation of state solver (EOSS) that is called from
radial_solver. This EOSS is used to find gravity(r). - Bulk modulus must now be provided as a complex-valued array
- If a non-zero imaginary portion is provided (e.g., found via a rheology) then bulk dissipation is now tracked.
- If imaginary portions are zero, then bulk dissipation is ignored as in TidalPy v0.5.x and earlier. (this is actually dependent on your bulk rheology; it could also cause infinities...)
- Several arguments have had slight name refactors which will break calls that used keyword arguments. Review the RadialSolver documentation or "TidalPy/RadialSolver/solver.pyx" for the new argument names.
upper_radius_bylayer_arraymust now be provided as a numpy array (previously a tuple of floats was acceptable).- Added new optional argument
surface_pressure(default=0.0) used with EOSS to find pressure convergence. - Added new optional argument
core_model(default=0) used to set the lower boundary condition when the propagation matrix technique is used. - Added new optional argument
starting_radius(default=0.0) to allow the user to set the initial radius for the radial solution. - Setting the solution radius higher in the planet can improve solution stability when using the shooting method. Particularly if looking at higher harmonic
degree_ls. There is a trade off with accuracy so advise testing. - The starting radius must be >= 0.0, if 0.0 is provided (the default) then TidalPy will use the Martens technique to find a suitable starting radius (function of
degree_l, planet radius, and the new optional argumentstart_radius_tolerancewhich defaults to 1.0e-5). - Removed
limit_solution_to_radiusargument. - Added new optional argument
use_prop_matrix(default=False) to use the propagation matrix technique over the shooting method. - Equation of State Solver arguments:
eos_method_bylayer- EOSS method to use for each layer (currently only "interpolate" is supported).eos_integration_methodRunge-Kutta method to use for EOSS (default="RK45").eos_rtolandeos_atolcan also be provided to control integration error.eos_pressure_tol(default=1.0e-3) andeos_max_iters(default=40) control the pressure convergence of the EOSS.- Added optional argument
perform_checks(default=True) that performs many checks on the user input before running the solution (small performance penalty, but highly recommend leaving on until your inputs are tested). - Added optional argument
log_info(default=False) that will log key physical and diagnostic information to TidalPy's log (which can be set to be consol print, log file, or both via TidalPy's configurations). - Note there is a performance hit when using this, particularly if logging to file is enabled.
- Many changes to the order as well as additions and removals of arguments to
New RadialSolver Helpers
* To assist with the generation of valid inputs to radial_solver, TidalPy now provides two helper functions:
* For planets with homogeneous layers: from TidalPy.RadialSolver import build_rs_input_homogeneous_layers takes in attributes for a planet made of layers with constant physical properties and then provides the arrays and other required radial_solver inputs that conform to the new radius_array scheme.
* For planets with inhomogeneous layers: from TidalPy.RadialSolver import build_rs_input_from_data which parses data arrays (loaded from a file or built elsewhere like using a more robust EOS than TidalPy offers) and makes changes to ensure they will work with radial_solver.
Expanded RadialSolverSolution Attributes and Methods
* The output of radial_solver, an instance of the RadialSolverSolution, has been greatly expanded to provide much more data and functionality to the user. Full details can be found in the new RadialSolver documentation. Highlights include:
* EOSS results like <solution>.mass, <solution>.moi, <solution>.moi_factor, <solution>.central_pressure, <solution>.surface_gravity.
* Diagnostic data like number of integration steps required per layer to find a solutions <solution>.steps_taken, or EOSS diagnostics: <solution>.eos_iterations, <solution>.eos_pressure_error, <solution>.eos_success, <solution>.eos_message, <solution>.eos_steps_taken.
* Much of the new diagnostic data as well as key results can now be quickly printed using <solution>.print_diagnostics().
* Method to quickly plot the viscoelastic-gravitational solution y's <solution>.plot_ys().
* Method to quickly plot the EOS results <solution>.plot_interior().
* In addition to the previously provided attributes like <solution>.love, <solution>.k, <solution>.h, <solution>.l, <solution>.result.
Cython / C Changes
- Shifted away from
PyMem_FreetoCyRK.utils.mem_freeto allow for consistency in future development.- Avoiding using these manual heap allocations whenever possible. Many new uses of smart pointers and C++ vectors.
Other Changes
- Updated GitHub actions.
- Moved to more consistent and robust types (e.g., int for degree_l vs. prior unsigned-char; unsigned-int).
- Added inverse function
cinvinTidalPy.utilities.math.complex. - New "TidalPy/constants.pyx" isolates all TidalPy constants. Available to both Python and Cython. Refactored all files to use the constants in this file.
- New numerics module
TidalPy.math.numericsfor low-level floating point functions.- New cythonized
isclosefunction that matches functionality of python'smath.isclose
- New cythonized
- Cythonized radial sensitivity to shear/bulk functions in
TidalPy.tides.multilayer.sensitivity(based on Tobie+2005) - Cythonized radial heating functions that use the sensitivity to shear/bulk functions in
TidalPy.tides.multilayer.heating(based on Tobie+2005) - Improved logging so it is less spammy.
- Logger now logs all exceptions raised.
- Moved TidalPy's default config and world config dir to user's "Documents" folder (from system appdata folder).
- If upgrading from previous version of TidalPy, you can safely delete the old config directory.
- On Windows the old dir was: "'C:\Users\
\AppData\Local\TidalPy'"; The new dir is "'C:\Users\ \Documents\TidalPy'" - On Mac the old dir was: "'/Users/
/Library/Application Support/TidalPy'"; The new dir is "'/Users/ /Documents/TidalPy'" - On Linux the old dir was: "'/Users/
/.local/share/TidalPy'"; The new dir is "'/home/ /Documents/TidalPy'"
- New switch
TidalPy.log_to_file()to quickly turn on saving log to file (this can also be adjusted in the TidalPy configurations). - TidalPy now looks for an environment variable "TIDALPYTESTMODE" to turn on test mode during first initialization (can later be changed using the
TidalPy.test_mode()command or settingTidalPy._test_mode = False; TidalPy.reinit()). - Made use of more TidalPy-specific exceptions.
- Tweaked the
TidalPy.utilities.graphics -> yplot. - User can now override TidalPy.config using
TidalPy.reinit(<new config toml file path; or dictionary of configs>). - Refactored and made improvements to
TidalPy.utilities.graphics.planet_plot.
Dependencies
- Added support for CyRK v0.12.x
- Added support for Burnman v0.2.x
Documentation
- Reworked TidalPy's documentation structure in prep for a shift to Sphinx in the future.
- Greatly expanded and improved RadialSolver documentation which can be found in "TidalPy/Documentation/RadialSolver"
Fixes
- Fixed issue where
radial_solverarrays could dealloc while references still pointed to them (hanging pointers). - Missing Cython compile arguments in TidalPy's utilities,
nondimensional.pyx. - Fixed incorrect type in dynamic liquid layers that may have been causing some errors to propagate.
- Fixed issue where
TidalPy._config_pathwas not being updated. - Fixed issue where log files could not be created.
GitHub Tracked Changes
- main merge by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/60
- FIX: Cython headers in nondimensional.pyx by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/61
- DEP: CyRK v0.9.0 by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/62
- Update with ver0.6.0 by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/63
- Merge Main by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/64
- Switching RadialSolver Backend to work with Newest CyRK / Additional cythonization by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/66
- Improving logging by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/67
- Documentation and benchmarks by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/68
- TidalPy v0.6.0 by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/69
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.5.5...v0.6.0
- Jupyter Notebook
Published by jrenaud90 over 1 year ago
tidalpy - TidalPy v0.5.5
Changes
Fixes:
* Fixed dependency compatibility issues.
* Fixed incorrect function signature type for scipy's spherical_jn. SciPy v.1.14.X uses a new signature which is breaking on MacOS. Limiting to "SciPy<1.14" for now.
GitHub Tracked Changes:
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.5.4...v0.5.5
- Jupyter Notebook
Published by jrenaud90 over 1 year ago
tidalpy - v0.5.4
Changes
Fixes: * Fixed RadialSolver frequency warning message for dynamic liquid layers not displaying for correct layer types.
Additions:
* Added way to suppress warning messages in RadialSolver.
* To turn this suppression on, pass warnings=False to RadialSolver.radial_solver.
GitHub Tracked Changes
- FIX: Bug in warning system for RadialSovler by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/58
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.5.3...v0.5.4
- Jupyter Notebook
Published by jrenaud90 about 2 years ago
tidalpy - TidalPy v0.5.3
Changes
Fixes: * RadialSolver: Fixed bug where solutions between liquid and solid layers were not propagating correctly.
Additions:
* New Love number benchmarks for Earth provided by Nick Wagner in Benchmarks & Performance\RadialSolver\Earth Love Numbers.ipynb (Jupyter Notebook).
Changes: * Pre-allocated several cythonized arrays to nans to help with debugging. * Provided more error messages to improve user experience. * Cythonized non-dim function now takes in the planet's density and radius as variables to change. * Improved the Tobie and Roberts benchmarks for radial solver.
Other: * Updated to work with CyRK 0.8.7
GitHub Tracked Changes
- Updated NaN troublshooting in RadialSolver.md by @nlwagner in https://github.com/jrenaud90/TidalPy/pull/52
- Radialsolver-benchmarking by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/56
- Add files via upload by @nlwagner in https://github.com/jrenaud90/TidalPy/pull/54
- Ver0.5.3 by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/57
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.5.2...v0.5.3
- Jupyter Notebook
Published by jrenaud90 about 2 years ago
tidalpy - TidalPy v0.5.2
Changes
Documentation * Improved RadialSolver documentation regarding higher degree-l. * Added info about issues that can arise from using non C-continguous arrays in cythonized functions.
Fixes:
* Added error message to RadialSolver.radial_solver if length of provided assumption tuples is not the same.
* Fixed issue where non C-continguous arrays were allowed in cythonized functions that required them.
GitHub Tracked Changes
- Update Using RadialSolver.md by @nlwagner in https://github.com/jrenaud90/TidalPy/pull/49
- Ver 0.5.2 by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/51
New Contributors
- @nlwagner made their first contribution in https://github.com/jrenaud90/TidalPy/pull/49
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.5.1...v0.5.2
- Jupyter Notebook
Published by jrenaud90 over 2 years ago
tidalpy - TidalPy v0.5.1
Changes
Removed Python 3.8 support due to issues with building SciPy.
GitHub Tracked Changes
- DEPS: Removed py 3.8 support by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/47
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.5.0...v0.5.1
- Jupyter Notebook
Published by jrenaud90 over 2 years ago
tidalpy - v0.5.0
Changes
This version is likely to break code based on TidalPy v0.4.X and earlier
Cythonizing TidalPy
* A major change starting with v0.5.0 is the switch from numba.njited functions to cython precompiled functions and
extension classes. The reasons for doing this are numerous. This transition will be completed in stages
with minor versions (v0.X.0) each bringing a new set of cythonized updates until all njited functions are retired.
* For this version:
* Converted TidalPy.radial_solver.radial_solver to cythonized TidalPy.RadialSolver.radial_solver.
* The old radial solver method will be removed in TidalPy version 0.6.0.
* Added new cython-based TidalPy.utilities.classes.base_x base cython extension class that other classes are built off of.
* Converted TidalPy.rheology.complex_compliances.compliance_models to cythonized TidalPy.rheology.models.
* Improved the new rheology methods to better handle extreme values of frequency and modulus.
* The old rheology solvers will be removed in a future release of python.
* Added several new cython-based helper functions in the utilities package.
Other Major Changes
* Added support for Python 3.11 and 3.12. TidalPy now runs on Python 3.8--3.12.
* Note that currently the Burnman package does not support 3.12 so that functionality is limited to python 3.8-3.11.
* Removed support for solver_numba in the radial_solver module.
* Removed some imports from main package and sub modules' __init__ to avoid slow load times.
* Moved conversion tools from TidalPy.toolbox.conversions to TidalPy.utilities.conversions.
* Changed setup files so that cython code can be compiled.
* special - for high-performance, general, scientific functions.
* Moved TidalPy configs to a standard user directory by default. The specific location will depend on the OS.
* Default configs will be installed on the first import TidalPy call after installation.
* These defaults are stored in the TidalPy.defaultc.py as a string which is copy and pasted to the new TidalPy_Configs.toml.
* There is a new TidalPy.clear_data() function to delete all data stored in these locations. Data will be rebuilt the next time TidalPy is imported.
* New TidalPy.set_config(config_path) to change the active configuration file used by TidalPy.
* Note that TidalPy.reinit() should be called after changing the configurations.
* New TidalPy.set_world_dir(world_dir_path) to change which directory to pull world configs from.
* Moved away from the system of default.py configurations for sub modules. All default configs are stored in the same TidalPy_Config.toml
* Shifted from json to toml files for world configs.
* Store all world configs to a zip file for easier distribution.
* TidalPy now requires:
* CyRK>=0.8.6
* Cython>=3.0.0
* Moved BurnMan 3rd party dependence to a more dedicated Extending folder for future development.
* To make TidalPy lighter weight we are starting to remove a lot of 3rd party packages.
Minor Changes and New Features
* complex_compliance configurations are now stored in the top level rheology in all configs.
* For example, in prior TidalPy versions you would need to change the complex compliance model by editing config['layers']['mantle']['rheology']['complex_compliance']['model'] = 'andrade'. Now this would be: config['layers']['mantle']['rheology']['model'] = 'andrade'.
* Added unique frequency finder functions to the modes module.
* Moved most of the type hints behind the typing.TYPE_CHECKING flag.
* Moved non-critical files out of repository.
* Created a new tides.heating module and moved the volumetric heating calculations there.
* Expanded the performance suite to better track the radial_solver module.
* Moved cache.py to top-level.
* Turned off numba cacheing on several functions that may be used in the radial solver.
* rheology
* complex compliance functions
* radialsolver.numerical
* initial guess functions
* interface functions
* Converted radialsolver.numerical initial guess and interface functions output to np.ndarrays rather than numba lists.
* Removed config_helper.py and the functions defined within.
* New RadialSolver class now supports more than just boolean inputs.
* Future proofing to allow for a greater variety of layer types.
* Added exoplanet archive download functionality in TidalPy.utilities.exoplanets.
Bug Fixes
* Fixed floating point comparison bug in multilayer_modes solver.
* Fixed obliquity not being used issue in quick tides calculator.
* Fixed issue in incorrect TidalPy version being loaded into the package.
Performance Improvements
* Improved the performance of the stress and strain calculator by ~20%.
* Cythonize Performance Increases:
* New RadialSolver.radial_solver leads to a ~50x performance boost.
* New cythonized rheology models are 500% faster for arrays; 40,000% faster for scalars (not a typo!)
GitHub Tracked Changes
- Fixing slow package load by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/38
- Cythonizingradialsolver by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/39
- Changing-planet-configs by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/40
- TidalPy version 0.5.0 by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/46
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.4.1...v0.5.0
- Jupyter Notebook
Published by jrenaud90 over 2 years ago
tidalpy - TidalPy v0.4.1
Changes
- Version 0.4.0 of TidalPy has brought a large number of changes to various models. Many of which will break old code. Please review the full change log for details: https://github.com/jrenaud90/TidalPy/blob/main/CHANGES.md
GitHub Auto Generated Change Log
- TidalPy v0.4.0 by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/36
- Moved
radial_solverto a top level module. by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/37
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.3.5.beta...v0.4.1
- Jupyter Notebook
Published by jrenaud90 over 3 years ago
tidalpy - TidalPy v0.3.5-beta
What's Changed
Fixes issues introduced in 0.3.4 * v0.3.5 by @jrenaud90 in https://github.com/jrenaud90/TidalPy/pull/34
Full Changelog: https://github.com/jrenaud90/TidalPy/compare/v0.3.4-beta...v0.3.5.beta
- Jupyter Notebook
Published by jrenaud90 about 4 years ago
tidalpy - TidalPy version 0.3.4
Beta release of TidalPy version 0.3.4
Major Changes (see changes.md for a more complete list of changes):
* Added TidalPy.modes.multilayer_modes.py module to offer simplified calculation of multilayer tidal
heating.
* Added GridPlot class to quickly make grid-like matplotlib figures.
Checkout TidalPy.utilities.graphics.grid_plot.py
* Added Cartopy dependence.
* Can now make cool projection maps! Added basic functionality to TidalPy.utilities.graphics.global_map.py.
* New jupyter notebooks to showcase map projects and GridPlot functionality.
* Improved performance on both mode and non-mode tidal potential functions by at least a factor of 3. If used
correctly these can be nearly 100x faster.
* Added a new obliquity version of the mode version tidal potential.
* Stress and strain relationship for multi-layer tides now allows for arbitrary rheology.
* Created a single multilayer solver to handle an arbitrary layer structure.
See TidalPy.tides.multilayer.numerical_int.solver.py
* Stress & Strain relationship now accounts for arbitrary rheology.
* Created a single multi-mode solver for multilayer problems. See TidalPy.tides.modes.multilayer_modes.py
* TidalPy now defaults to using the frequency dependent zeta versions of Andrade and Sundberg rheologies.
* This was done to avoid issues with real(complex_comp) at zero frequency which happens in multi mode
calculations.
* Added numba-safe version of multilayer calc
- Jupyter Notebook
Published by jrenaud90 about 4 years ago
tidalpy - TidalPy v0.3.0 Beta
Beta release of TidalPy version 0.3.0
Bugfixes will be committed to the master branch with version numbers 0.3.X (they will not be made into new release tag unless absolutely necessary). If you are downloading for the first time it is recommended that you clone the master branch to ensure you have all the latest bug fixes.
A new branch will be made for development on 0.4.0. New features and pull requests should be added to the dev branch not the master branch.
Major Changes (see changes.md for a more complete list of changes):
* Added the first iteration of a multilayer tidal calculator module in TidalPy.tides.multilayer this module provides basic functionality to calculate tidal dissipation in a semi-homogeneous, shell-based approach. This is more accurate than the pure homogeneous model used throughout the rest of TidalPy. The downside with the current version is that it does not allow for NSR or high eccentricity / obliquity. A future version will attempt to add in a more robust Tidal Potential equation which will allow for additional physics.
* Setup.py has been revamped as has the installation process. This is in prep to allow for TidalPy to become available on PyPI.
* Did away with most of the _array functions. Found a way for njit to compile a function to handle either arrays or floats.
* Left the self._func_array (in addition to self._func) in the model.py classes just in case we ever do need to define array functions in the future: all the infrastructure is still in place.
* Added a numba-safe Explicit Runge-Kutta integrator. This is fully wrapped in njit'd functions.
* On its own this can be 5--20 times faster than scipy.solve_ivp.
* This also allows the integration function to be used from within another njit'd function(s).
* This is still very experimental so please use caution and testing when using it.
- Jupyter Notebook
Published by jrenaud90 almost 5 years ago
tidalpy - TidalPy v0.2.1 Beta
Beta release of TidalPy version 0.2.1
Bugfixes will be committed to the master branch with version numbers 0.2.X (they will not be made into new release tags). If you are downloading for the first time it is recommended that you clone the master branch to ensure you have all the latest bug fixes.
A new branch will be made for development on 0.3.0. New features should be added to that branch not the master branch.
- Jupyter Notebook
Published by jrenaud90 over 5 years ago
tidalpy - TidalPy v0.1 Beta
Beta release of TidalPy version 0.1.
Bugfixes will be committed to the master branch with version numbers 0.1.X (they will not be made into new releases). If you are downloading for the first time it is recommended that you clone the master branch to ensure you have all the latest bug fixes.
A new branch will be made for development on 0.2.0. New features should be added to that branch not the master branch.
- Jupyter Notebook
Published by jrenaud90 almost 7 years ago