Skip to content

Commit

Permalink
Add Inciter, remove Quinoa
Browse files Browse the repository at this point in the history
Move some of Quinoa's stuff to Breeze. We now build a new executable, inciter,
which will be a test bed for shock hydrodynamics with task-based parallelism
using Charm++. It does nothing yet, other than initializing the Charm++ runtime
system and gracefully quitting. At this point the goals of inciter are:

  1. Experiment with 3D tetrahedra unstructured grid with task-based parallelism
  using Charm++.

  2. Learn how to implement a purely Eulerian-grid-based hydro method with
  Charm++.

The functionality in executable, quinoa will be gradually moved to breeze, which
will be the stochastic Lagrangian-particle based computational fluid dynamics
tool solving the Navier-Stokes equation.
  • Loading branch information
jbakosi committed Feb 23, 2015
1 parent 6dd1022 commit 80fed78
Show file tree
Hide file tree
Showing 68 changed files with 773 additions and 727 deletions.
22 changes: 22 additions & 0 deletions doc/images/inciter.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
,::,` `.
.;;;'';;;: ;;#
;;;@+ +;;; ;;;;;, ;;;;. ;;;;;, ;;;; ;;;; `;;;;;;: ;;;
:;;@` :;;' .;;;@, ,;@, ,;;;@: .;;;' .;+;. ;;;@#:';;; ;;;;'
;;;# ;;;: ;;;' ;: ;;;' ;;;;; ;# ;;;@ ;;; ;+;;'
.;;+ ;;;# ;;;' ;: ;;;' ;#;;;` ;# ;;@ `;;+ .;#;;;.
;;;# :;;' ;;;' ;: ;;;' ;# ;;; ;# ;;;@ ;;; ;# ;;;+
;;;# .;;; ;;;' ;: ;;;' ;# ,;;; ;# ;;;# ;;;: ;@ ;;;
;;;# .;;' ;;;' ;: ;;;' ;# ;;;; ;# ;;;' ;;;+ ;', ;;;@
;;;+ ,;;+ ;;;' ;: ;;;' ;# ;;;' ;# ;;;' ;;;' ;':::;;;;
`;;; ;;;@ ;;;' ;: ;;;' ;# ;;;';# ;;;@ ;;;:,;+++++;;;'
;;;; ;;;@ ;;;# .;. ;;;' ;# ;;;;# `;;+ ;;# ;# ;;;'
.;;; :;;@ ,;;+ ;+ ;;;' ;# ;;;# ;;; ;;;@ ;@ ;;;.
';;; ;;;@, ;;;;``.;;@ ;;;' ;+ .;;# ;;; :;;@ ;;; ;;;+
:;;;;;;;+@` ';;;;;'@ ;;;;;, ;;;; ;;+ +;;;;;;#@ ;;;;. .;;;;;;
.;;#@' `#@@@: ;::::; ;:::: ;@ '@@@+ ;:::; ;::::::
:;;;;;;. .___ .__ __
.;@+@';;;;;;' | | ____ ____ |__|/ |_ ___________
` '#''@` | |/ \_/ ___\| \ __\/ __ \_ __ \
| | | \ \___| || | \ ___/| | \/
|___|___| /\___ >__||__| \___ >__|
\/ \/ \/
10 changes: 5 additions & 5 deletions src/Base/Exception.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/*!
\file src/Base/Exception.h
\author J. Bakosi
\date Tue 16 Dec 2014 12:14:26 PM MST
\date Mon 23 Feb 2015 08:00:40 AM MST
\copyright 2012-2015, Jozsef Bakosi.
\brief Exception class declaration
\details Exception class declaration. The basic functionality provided by
Expand All @@ -28,10 +28,10 @@ namespace tk {
//! Throw macro that always throws an exception:
//! Throw Exception with arguments passed in. Add source filename, function
//! name, and line number where exception occurred. This macro facilitates a
//! throw of Quinoa::Exception that is somehwat cleaner at the point of
//! invocation than a direct throw of Exception, as it hides the file:func:line
//! arguments. Whenever is possible, it should be used via the Assert and ErrChk
//! macros defined below.
//! throw of tk::Exception that is somehwat cleaner at the point of invocation
//! than a direct throw of Exception, as it hides the file:func:line arguments.
//! Whenever is possible, it should be used via the Assert and ErrChk macros
//! defined below.
#define Throw(...) \
throw tk::Exception(__VA_ARGS__, __FILE__, __PRETTY_FUNCTION__, __LINE__)

Expand Down
19 changes: 11 additions & 8 deletions src/Base/Print.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/*!
\file src/Base/Print.h
\author J. Bakosi
\date Tue 17 Feb 2015 04:02:08 PM MST
\date Mon 23 Feb 2015 09:16:39 AM MST
\copyright 2012-2015, Jozsef Bakosi.
\brief General purpose pretty printer functionality
\details This file contains general purpose printer functions. Using the
Expand Down Expand Up @@ -346,13 +346,13 @@ class Print {
template< Style s = VERBOSE >
std::ostream& stream() const noexcept { return s ? m_stream : m_qstream; }

//! Print Quinoa header. Text ASCII Art Generator used for executable
//! Print Inciter header. Text ASCII Art Generator used for executable
//! names: http://patorjk.com/software/taag, Picture ASCII Art Generator
//! used for converting the logo text "Quinoa": http://picascii.com.
//! \author J. Bakosi
template< Style s = VERBOSE >
void headerQuinoa() const {
stream<s>() << R"(
void headerInciter() const {
stream<s>() << R"(
,::,` `.
.;;;'';;;: ;;#
;;;@+ +;;; ;;;;;, ;;;;. ;;;;;, ;;;; ;;;; `;;;;;;: ;;;
Expand All @@ -369,9 +369,12 @@ class Print {
';;; ;;;@, ;;;;``.;;@ ;;;' ;+ .;;# ;;; :;;@ ;;; ;;;+
:;;;;;;;+@` ';;;;;'@ ;;;;;, ;;;; ;;+ +;;;;;;#@ ;;;;. .;;;;;;
.;;#@' `#@@@: ;::::; ;:::: ;@ '@@@+ ;:::; ;::::::
:;;;;;;.
.;@+@';;;;;;'
` '#''@` )"
:;;;;;;. .___ .__ __
.;@+@';;;;;;' | | ____ ____ |__|/ |_ ___________
` '#''@` | |/ \_/ ___\| \ __\/ __ \_ __ \
| | | \ \___| || | \ ___/| | \/
|___|___| /\___ >__||__| \___ >__|
\/ \/ \/ )"
<< std::endl;
}

Expand All @@ -398,7 +401,7 @@ class Print {
';;; ;;;@, ;;;;``.;;@ ;;;' ;+ .;;# ;;; :;;@ ;;; ;;;+
:;;;;;;;+@` ';;;;;'@ ;;;;;, ;;;; ;;+ +;;;;;;#@ ;;;;. .;;;;;;
.;;#@' `#@@@: ;::::; ;:::: ;@ '@@@+ ;:::; ;::::::
:;;;;;;. __________ _______ __________________
:;;;;;;. __________ _______ __________________ __
.;@+@';;;;;;' \______ \\ \ / _____\__ _______ ______/ |_
` '#''@` | _// | \/ \ ___ | |_/ __ \ / ___\ __\
| | / | \ \_\ \| |\ ___/ \___ \ | |
Expand Down
2 changes: 1 addition & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ execute_process(
string(REGEX REPLACE "[\r\n]" "" BUILD_DATE "${BUILD_DATE}")

# Set names of executables
set(QUINOA_EXECUTABLE "quinoa")
set(INCITER_EXECUTABLE "inciter")
set(RNGTEST_EXECUTABLE "rngtest")
set(UNITTEST_EXECUTABLE "unittest")
set(MESHCONV_EXECUTABLE "meshconv")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
//******************************************************************************
/*!
\file src/Control/Quinoa/InputDeck/Grammar.h
\file src/Control/Breeze/InputDeck/Grammar.h
\author J. Bakosi
\date Fri 16 Jan 2015 06:20:53 PM MST
\date Mon 23 Feb 2015 08:46:46 AM MST
\copyright 2012-2015, Jozsef Bakosi.
\brief Quinoa's input deck grammar definition
\details Quinoa's input deck grammar definition. We use the Parsing
\brief Breeze's input deck grammar definition
\details Breeze's input deck grammar definition. We use the Parsing
Expression Grammar Template Library (PEGTL) to create the grammar and the
associated parser. Credit goes to Colin Hirsch (pegtl@cohi.at) for PEGTL. Word
of advice: read from the bottom up.
*/
//******************************************************************************
#ifndef QuinoaInputDeckGrammar_h
#define QuinoaInputDeckGrammar_h
#ifndef BreezeInputDeckGrammar_h
#define BreezeInputDeckGrammar_h

#include <Grammar.h>
#include <PEGTLParsed.h>
Expand All @@ -24,14 +24,14 @@

#include <RNGSSEGrammar.h>

namespace quinoa {
namespace breeze {

extern ctr::InputDeck g_inputdeck_defaults;

//! Quinoa input deck facilitating user input for computing fluid dynamics
//! Breeze input deck facilitating user input for computing fluid dynamics
namespace deck {

//! \brief PEGTLParsed type specialized to Quinoa's input deck parser
//! \brief PEGTLParsed type specialized to Breeze's input deck parser
//! \details PEGTLInputDeck is practically InputDeck equipped with PEGTL
//! location information so the location can be tracked during parsing.
//! \author J. Bakosi
Expand All @@ -41,7 +41,7 @@ namespace deck {
tag::cmd,
ctr::CmdLine >;

//! \brief Specialization of tk::grm::use for Quinoa's input deck parser
//! \brief Specialization of tk::grm::use for Breeze's input deck parser
//! \author J. Bakosi
template< typename keyword >
using use = tk::grm::use< keyword,
Expand All @@ -50,12 +50,12 @@ namespace deck {
ctr::InputDeck::keywords3,
ctr::InputDeck::keywords4 >;

// Quinoa's InputDeck state
// Breeze's InputDeck state

//! Everything is stored in Stack during parsing
using Stack = PEGTLInputDeck;

// Quinoa's InputDeck actions
// Breeze's InputDeck actions

//! \brief Put option in state at position given by tags
//! \details This is simply a wrapper around tk::grm::store_option passing the
Expand All @@ -69,7 +69,7 @@ namespace deck {
}
};

// Quinoa's InputDeck grammar
// Breeze's InputDeck grammar

//! \brief Scan selected option
//! \author J. Bakosi
Expand Down Expand Up @@ -268,6 +268,6 @@ namespace deck {
tk::grm::read_file< Stack, keywords, tk::grm::ignore > {};

} // deck::
} // quinoa::
} // breeze::

#endif // QuinoaInputDeckGrammar_h
#endif // BreezeInputDeckGrammar_h
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
//******************************************************************************
/*!
\file src/Control/Quinoa/InputDeck/InputDeck.h
\file src/Control/Breeze/InputDeck/InputDeck.h
\author J. Bakosi
\date Sun 18 Jan 2015 06:48:49 AM MST
\date Mon 23 Feb 2015 08:47:27 AM MST
\copyright 2012-2015, Jozsef Bakosi.
\brief Quinoa's input deck definition
\brief Breeze's input deck definition
\details This file defines the heterogeneous stack that is used for storing
the data from user input during the control file parsing of the
computational fluid dynamics tool, Quinoa.
computational fluid dynamics tool, Breeze.
*/
//******************************************************************************
#ifndef QuinoaInputDeck_h
#define QuinoaInputDeck_h
#ifndef BreezeInputDeck_h
#define BreezeInputDeck_h

#include <limits>

#include <boost/mpl/set.hpp>
#include <boost/mpl/for_each.hpp>

#include <Control.h>
#include <Quinoa/CmdLine/CmdLine.h>
#include <Quinoa/Components.h>
#include <Breeze/CmdLine/CmdLine.h>
#include <Breeze/Components.h>

namespace quinoa {
namespace breeze {
namespace ctr {

//! \brief InputDeck : Control< specialized to Quinoa >, see Types.h,
//! \brief InputDeck : Control< specialized to Breeze >, see Types.h,
//! \details The stack is a tagged tuple, a hierarchical heterogeneous data
//! structure where all parsed information is stored.
//! \see Base/TaggedTuple.h
//! \see Control/Quinoa/Types.h
//! \see Control/Breeze/Types.h
//! \author J. Bakosi
class InputDeck :
public tk::Control< // tag type
Expand All @@ -45,7 +45,7 @@ class InputDeck :
tag::error, std::vector< std::string > > {

public:
//! \brief Quinoa input deck keywords
//! \brief Breeze input deck keywords
//! \details Since there are more than 20 and boost::mpl only allows maxium
//! 20 items in a set by default (and I don't want to mess with
//! preprocessor-generated boost::mpl headers), the whole set is broken up
Expand Down Expand Up @@ -181,6 +181,6 @@ class InputDeck :
};

} // ctr::
} // quinoa::
} // breeze::

#endif // QuinoaInputDeck_h
#endif // BreezeInputDeck_h
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
//******************************************************************************
/*!
\file src/Control/Quinoa/InputDeck/Parser.C
\file src/Control/Breeze/InputDeck/Parser.C
\author J. Bakosi
\date Fri 16 Jan 2015 06:05:03 PM MST
\date Mon 23 Feb 2015 08:47:46 AM MST
\copyright 2012-2015, Jozsef Bakosi.
\brief Quinoa's input deck file parser
\brief Breeze's input deck file parser
\details This file declares the input deck, i.e., control file, parser for
the computational fluid dynamics tool, Quinoa.
the computational fluid dynamics tool, Breeze.
*/
//******************************************************************************

#include <Quinoa/InputDeck/Parser.h>
#include <Quinoa/InputDeck/Grammar.h>
#include <Breeze/InputDeck/Parser.h>
#include <Breeze/InputDeck/Grammar.h>

namespace tk {
namespace grm {
Expand All @@ -21,7 +21,7 @@ extern tk::Print g_print;
} // grm::
} // tk::

using quinoa::InputDeckParser;
using inciter::InputDeckParser;

InputDeckParser::InputDeckParser( const tk::Print& print,
const ctr::CmdLine& cmdline,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
//******************************************************************************
/*!
\file src/Control/Quinoa/InputDeck/Parser.h
\file src/Control/Breeze/InputDeck/Parser.h
\author J. Bakosi
\date Fri 16 Jan 2015 12:33:51 PM MST
\date Mon 23 Feb 2015 08:48:13 AM MST
\copyright 2012-2015, Jozsef Bakosi.
\brief Quinoa's input deck file parser
\brief Breeze's input deck file parser
\details This file declares the input deck, i.e., control file, parser for
the computational fluid dynamics tool, Quinoa.
the computational fluid dynamics tool, Breeze.
*/
//******************************************************************************
#ifndef QuinoaInputDeckParser_h
#define QuinoaInputDeckParser_h
#ifndef BreezeInputDeckParser_h
#define BreezeInputDeckParser_h

#include <FileParser.h>
#include <Print.h>
#include <Quinoa/CmdLine/CmdLine.h>
#include <Quinoa/InputDeck/InputDeck.h>
#include <Breeze/CmdLine/CmdLine.h>
#include <Breeze/InputDeck/InputDeck.h>

namespace quinoa {
namespace inciter {

//! \brief Control file parser for Quinoa.
//! \brief Control file parser for Breeze.
//! \details This class is used to interface with PEGTL, for the purpose of
//! parsing the control file for the computational fluid dynamics tool,
//! Quinoa.
//! Breeze.
class InputDeckParser : public tk::FileParser {

public:
Expand All @@ -32,6 +32,6 @@ class InputDeckParser : public tk::FileParser {
ctr::InputDeck& inputdeck );
};

} // namespace quinoa
} // namespace inciter

#endif // QuinoaInputDeckParser_h
#endif // BreezeInputDeckParser_h
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
//******************************************************************************
/*!
\file src/Control/Quinoa/Options/Energy.h
\file src/Control/Breeze/Options/Energy.h
\author J. Bakosi
\date Fri 16 Jan 2015 07:54:13 PM MST
\date Mon 23 Feb 2015 08:11:16 AM MST
\copyright 2012-2015, Jozsef Bakosi.
\brief Energy model options
\details Energy model options
*/
//******************************************************************************
#ifndef QuinoaEnergyOptions_h
#define QuinoaEnergyOptions_h
#ifndef BreezeEnergyOptions_h
#define BreezeEnergyOptions_h

#include <boost/mpl/vector.hpp>

#include <Toggle.h>
#include <Keywords.h>
#include <PUPUtil.h>

namespace quinoa {
namespace breeze {
namespace ctr {

//! Energy model types
Expand Down Expand Up @@ -54,6 +54,6 @@ class Energy : public tk::Toggle< EnergyType > {
};

} // ctr::
} // quinoa::
} // breeze::

#endif // QuinoaEnergyOptions_h
#endif // BreezeEnergyOptions_h
Loading

0 comments on commit 80fed78

Please sign in to comment.