Giter VIP home page Giter VIP logo

conflow's Introduction

ConFlow

ConFlow: Super Granular Convective Flow Generator

Predictive Science Inc.


OVERVIEW

ConFlowConFlow computes a sequence of velocity maps for supergranule flows on the surface of the Sun. Such photospheric velocity fields are essential for developing and testing realistic flux transport models and the analysis techniques for observational data.

Conflow generates these maps analytically by specifying the convection spectrum of poloidal and toroidal modes (e.g., Hathaway (1988), Hathaway et al. (2010)), and advecting them with the Sun’s axisymmetric differential rotation and meridional flows.

Conflow creates the velocity maps on a spherical surface grid of phi (longitude) and theta (colatitude). It can output the maps on a staggered grid in HDF5 format or on an unstaggered grid in binary format. The staggered grid is designed to be directly used in OFT's surface flux transport code HipFT. When using the maps with HipFT, one should set HipFT's meridional and differential flow coefficients to those used in the ConFlow computation.


HOW TO BUILD CONFLOW

ConFlow has been tested to work using GCC's gfortran (>8) compiler.
It is recommended to use the latest compiler version available.

HipFT requires the HDF5 library.
The library must be compiled by the same compiler ConFlow is using.
When using the default system compiler (often GCC), the system's HDF5 dev packages should work.

  1. Find the build script from the build_examples folder that is closest to your setup and copy it into the top-level directory.
  2. Modify the script to set the HDF5 library paths/flags and compiler flags compatible with your system environment.
  3. Modify the script to set the compiler options to reflect your setup.
  4. If using GCC's auto parallelization, set your OMP_NUM_THREADS environment variable to the number of threads you want to run with.
  5. Run the build script (for example, ./my_build.sh).
  6. It is recommended to add the bin folder to your system path.

HOW TO RUN CONFLOW

Setting Input Options

ConFlow uses a namelist in an input text file.
The name for the input text file must be set to conflow.dat

A full working input file with all the default parameter options is provided in the file:

doc/conflow.dat.documentation

A detailed description of each parameter is also given in that file, and (in addition to this README) is the current main documentation of the code.

We have also provided example input file for a use case in the examples/ folder.

Launching the Code

To run ConFlow, set the desired run parameters into a file called conflow.dat, then copy or link the conflow executable into the same directory as the input file and run the command:

./conflow

The code can be multi-threaded. This requires proper setting of the OMP_NUM_THREADS environment variable before compilation when using GCC and its auto parallelization ftree-parallelize-loops flag.

Solution Output

The output of ConFlow (using a staggered grid) are HDF5 vt and vp velocity component map files in longitude-colatitude coordinates.
A CSV file called flow_output_list.csv is generated that lists the output files with the time of output.


conflow's People

Contributors

sumseq avatar raphael-attie avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.