示例#1
0
import numpy as np
from Flox.system import NDSystem2D
from Flox.input import FloxConfiguration
from Flox.linear import LinearEvolver
from Flox.io import HDF5Writer
from Flox.ic import stable_temperature_gradient, standard_linear_perturbation, single_mode_linear_perturbation
from pyshell.util import ipydb

def filename(extension=".yml"):
    """docstring for filename"""
    base = os.path.splitext(__file__)[0]
    return base + extension


if __name__ == '__main__':
    ipydb()
    
    Config = FloxConfiguration.fromfile(filename(".yml"))
    System = NDSystem2D.from_params(Config["system"])
    iterations = int(Config["iterations"])
    chunks = System.nt - System.it - 1
    Writer = HDF5Writer(filename(".hdf5"))
    System.Rayleigh = 779.27
    stable_temperature_gradient(System)
    single_mode_linear_perturbation(System, mode=1)
    print(System)
    print(System.diagnostic_string())
    LE = LinearEvolver.from_system(System)
    LE.step(LE.delta_time())
    LE.evolve_system(System, Config['time'], iterations, chunks)
    print("")
示例#2
0
    """Analyze the data, showing the late time values of the stability criterion."""
    import matplotlib.pyplot as plt
    Config = FloxConfiguration.fromfile(opt.configuration)
    Writer = HDF5Writer(opt.filename)

    for i, system in enumerate("stable critical unstable".split()):
        System = NDSystem2D.from_params(Config["system"])
        Writer.read(System, "{}-{:d}".format(system, opt.mode))
        print(System)
        print(System.diagnostic_string())
        print(System.nz // 3)
        for array in System.list_arrays():
            if array == "Time":
                continue
            data = System.engine[array][System.nz // 3, 1]
            ln_data = np.log(np.abs(data))
            print("{:15.15s}: {}".format(array, data[-5:]))
            print("{:15.15s}: {}".format(array, np.diff(ln_data)[-4:]))


if __name__ == '__main__':
    opt = parse_options()
    ipydb()
    if "run" in opt.action:
        run(opt)
    if "plot" in opt.action:
        plot(opt)
    if "animate" in opt.action:
        animate(opt)
    if "analyze" in opt.action:
        analyze(opt)