Skip to content
Snippets Groups Projects
Commit 7c7294a12613 authored by Ashwin Vishnu's avatar Ashwin Vishnu
Browse files

DOC: basilisk, sphericalharmo, pkgload function

parent 208ccc560904
No related branches found
No related tags found
1 merge request!39DOC: basilisk, sphericalharmo, fluidsim.solvers.pkgload() function
......@@ -21,7 +21,8 @@
from fluiddoc import mock_modules
mock_modules(('scipy', 'scipy.sparse', 'scipy.sparse.linalg', 'scipy.fftpack'))
mock_modules(('scipy', 'scipy.sparse', 'scipy.sparse.linalg', 'scipy.fftpack',
'basilisk', 'basilisk.stream',))
from fluiddoc.ipynb_maker import ipynb_to_rst
ipynb_to_rst()
......
......@@ -11,3 +11,4 @@
examples/init-fields-in-script-3d
examples/forcing-in-script
examples/static-layers
examples/running-third-party-basilisk
Run a third party solver using FluidSim: Basilisk
=================================================
A proof of concept on how FluidSim can act as a framework to extend third party
solvers. Provided `Basilisk <basilisk.fr>`__ is installed and available for import
the script can be launched as ``python simul_third_party_basilisk.py`` from the
``doc/examples`` directory.
.. literalinclude:: simul_third_party_basilisk.py
......@@ -20,6 +20,7 @@
operators
solvers
magic
pkgload
"""
......@@ -37,6 +38,7 @@
path_dir_results = None
from .util.util import (
available_solver_keys,
import_module_solver_from_key,
import_simul_class_from_key,
load_sim_for_plot,
......@@ -48,6 +50,7 @@
from .base.params import load_params_simul
# clean up
from . import util
......@@ -51,6 +54,7 @@
# clean up
from . import util
del util
......
......@@ -16,5 +16,13 @@
output
forcing
preprocess
sphericalharmo
Third party solver interfaces:
.. autosummary::
:toctree:
basilisk
"""
"""Basilisk solvers (:mod:`fluidsim.base.basilisk`)
===================================================
A reference implementation to use 2D solvers in `Basilisk <basilisk.fr>`__ via
FluidSim.
Provides:
.. autosummary::
:toctree:
solver
state
operators
time_stepping
output
"""
"""Operators for Basilisk (:mod:`fluidsim.base.basilisk.operators`)
===================================================================
Provides:
.. autoclass:: OperatorsBasilisk2D
:members:
:private-members:
"""
from __future__ import division
from builtins import object
......
"""Module to generate output from Basilisk (:mod:`fluidsim.base.basilisk.output`)
==================================================================================
Provides:
.. autoclass:: OutputBasilisk
:members:
:private-members:
"""
from ...output.base import OutputBase # , SpecificOutput
......
"""Basilisk solver (:mod:`fluidsim.base.basilisk.solver`)
=========================================================
Provides:
.. autoclass:: InfoSolverBasilisk
:members:
:private-members:
.. autoclass:: SimulBasilisk
:members:
:private-members:
"""
from __future__ import print_function
from fluidsim.base.solvers.base import SimulBase
......@@ -7,6 +21,7 @@
class InfoSolverBasilisk(InfoSolverBase):
"""Contain the information on a Basilisk solver."""
def _init_root(self):
super(InfoSolverBasilisk, self)._init_root()
......@@ -33,6 +48,7 @@
class SimulBasilisk(SimulBase):
"""A solver for Basilisk."""
InfoSolver = InfoSolverBasilisk
def __init__(self, params):
......@@ -36,6 +52,7 @@
InfoSolver = InfoSolverBasilisk
def __init__(self, params):
"""Initialize parameters, state fields, and event loop."""
bas = self.basilisk = basilisk
super(SimulBasilisk, self).__init__(params)
......
"""State of the variables (:mod:`fluidsim.base.basilisk.state`)
===============================================================
Provides:
.. autoclass:: StateBasilisk
:members:
:private-members:
"""
from ..state import StateBase
......@@ -17,7 +29,7 @@
)
def compute(self, key):
"""Compute scalar fields such a component of the velocity or vorticity."""
if key == "ux":
scalar = self.sim.basilisk.uf.x
elif key == "uy":
......
"""Time stepping (:mod:`fluidsim.base.basilisk.time_stepping`)
==============================================================
Provides:
.. autoclass:: TimeSteppingBasilisk
:members:
:private-members:
"""
from __future__ import print_function
from time import time
......@@ -7,6 +18,9 @@
class TimeSteppingBasilisk(object):
"""Time stepping class to handle Basilisk's event loop and FluidSim output.
"""
@staticmethod
def _complete_params_with_default(params):
"""This static method is used to complete the *params* container.
......
"""Base solver (:mod:`fluidsim.base.solvers.spherical_harmo`)
=============================================================
"""Base solver (:mod:`fluidsim.base.solvers.sphericalharmo`)
============================================================
......@@ -3,5 +3,5 @@
.. autoclass:: InfoSolver
.. autoclass:: InfoSolverSphericalHarmo
:members:
:private-members:
......
......@@ -18,4 +18,11 @@
sphere
models0d
Provides:
.. autosummary::
:toctree:
pkgload
"""
......@@ -21,1 +28,19 @@
"""
import numpy as _np
def pkgload():
"""Populate ``fluidsim.solvers`` package namespace with the solvers for easier
import.
"""
from ..util.util import available_solver_keys
solvers = available_solver_keys()
solver_pkgs = (f"fluidsim.solvers.{solver}"
for solver in solvers)
solver_modules = (f"fluidsim.solvers.{solver}.solver"
for solver in solvers)
_np.pkgload(*solver_pkgs)
_np.pkgload(*solver_modules)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment