tk::grm namespace

Toolkit general purpose grammar definition.

Contents

Classes

template<template<class> class use>
struct is_keyword
template<typename Rule>
struct action
template<typename... As>
struct call
Helper for calling action::apply for multiple actions.
template<class rule, class... actions>
struct act
Rule used to trigger action(s) for a rule.
template<class rule, class... actions>
struct action<act<rule, actions...>>
template<MsgType, MsgKey>
struct msg
Rule used to trigger action.
template<MsgType type, MsgKey key>
struct action<msg<type, key>>
template<typename tag, typename... tags>
struct Set
Rule used to trigger action.
template<typename tag, typename... tags>
struct action<Set<tag, tags...>>
template<typename tag, typename... tags>
struct Store
Rule used to trigger action.
template<typename tag, typename... tags>
struct action<Store<tag, tags...>>
template<typename tag, typename... tags>
struct Store_back
Rule used to trigger action.
template<typename tag, typename... tags>
struct action<Store_back<tag, tags...>>
template<typename tag, typename... tags>
struct Store_back_bool
Rule used to trigger action.
template<typename tag, typename... tags>
struct action<Store_back_bool<tag, tags...>>
Convert and push back a bool to vector of ints in state at position given by tags.
template<typename tag, typename... tags>
struct Store_back_back
Rule used to trigger action.
template<typename tag, typename... tags>
struct action<Store_back_back<tag, tags...>>
Convert and push back value to vector of back of vector in state at position given by tags.
template<typename tag, typename... tags>
struct Store_back_back_back
Rule used to trigger action.
template<typename tag, typename... tags>
struct action<Store_back_back_back<tag, tags...>>
Convert and push back value to vector of back of vector of back of vector in state at position given by tags.
template<typename target, typename tag, typename... tags>
struct Back_back_store
Rule used to trigger action.
template<typename target, typename tag, typename... tags>
struct action<Back_back_store<target, tag, tags...>>
Convert and store value to vector of vector in state at position given by tags and target.
template<typename target, typename subtarget, typename tag, typename... tags>
struct Back_back_deep_store
Rule used to trigger action.
template<typename target, typename subtarget, typename tag, typename... tags>
struct action<Back_back_deep_store<target, subtarget, tag, tags...>>
Convert and store value to vector of vector in state at position given by tags and target.
template<typename target, typename tag, typename... tags>
struct Back_back_store_back
Rule used to trigger action.
template<typename target, typename tag, typename... tags>
struct action<Back_back_store_back<target, tag, tags...>>
Convert and store value to vector of vector in state at position given by tags and target.
template<typename target, typename tag, typename... tags>
struct Back_store_back
Rule used to trigger action.
template<typename target, typename tag, typename... tags>
struct action<Back_store_back<target, tag, tags...>>
Convert and store value to vector in state at position given by tags and target.
template<typename target, typename subtarget, typename tag, typename... tags>
struct Back_back_deep_store_back
Rule used to trigger action.
template<typename target, typename subtarget, typename tag, typename... tags>
struct action<Back_back_deep_store_back<target, subtarget, tag, tags...>>
Convert and store value to vector of vector in state at position given by tags and target.
template<typename... tags>
struct Invert_switch
Rule used to trigger action.
template<typename... tags>
struct action<Invert_switch<tags...>>
template<template<class> class use, class Option, typename tag, typename... tags>
struct store_back_option
Rule used to trigger action.
template<template<class> class use, class Option, typename tag, typename... tags>
struct action<store_back_option<use, Option, tag, tags...>>
template<template<class> class use, class Option, typename tag, typename... tags>
struct store_back_back_option
Rule used to trigger action.
template<template<class> class use, class Option, typename tag, typename... tags>
struct action<store_back_back_option<use, Option, tag, tags...>>
Push back option to vector of back of vector in state at position given by tags.
template<typename target, template<class> class use, class Option, typename tag, typename... tags>
struct back_back_store_option
Rule used to trigger action.
template<typename target, template<class> class use, class Option, typename tag, typename... tags>
struct action<back_back_store_option<target, use, Option, tag, tags...>>
Push back option to vector of back of vector in state at position given by tags.
template<typename target, template<class> class use, class Option, typename tag, typename... tags>
struct back_store_option
Rule used to trigger action.
template<typename target, template<class> class use, class Option, typename tag, typename... tags>
struct action<back_store_option<target, use, Option, tag, tags...>>
Push back option to back of vector in state at position given by tags.
template<typename target, typename subtarget, template<class> class use, class Option, typename tag, typename... tags>
struct back_back_deep_store_option
Rule used to trigger action.
template<typename target, typename subtarget, template<class> class use, class Option, typename tag, typename... tags>
struct action<back_back_deep_store_option<target, subtarget, use, Option, tag, tags...>>
Push back option to vector of back of vector in state at position given by tags.
template<typename sel, typename vec, typename Tag, typename... Tags>
struct insert_seed
Rule used to trigger action.
template<typename sel, typename vec, typename Tag, typename... Tags>
struct action<insert_seed<sel, vec, Tag, Tags...>>
Convert and insert value to map at position given by tags.
template<template<class> class use, class Option, typename field, typename sel, typename vec, typename tag, typename... tags>
struct insert_option
Rule used to trigger action.
template<template<class> class use, class Option, typename field, typename sel, typename vec, typename tag, typename... tags>
struct action<insert_option<use, Option, field, sel, vec, tag, tags...>>
Convert and insert option value to map at position given by tags.
template<typename prec>
struct store_precision
Rule used to trigger action.
template<class prec>
struct action<store_precision<prec>>
Set numeric precision for ASCII output of floating-point values.
struct helpkw
Rule used to trigger action.
template<>
struct action<helpkw>
Find keyword among all keywords and if found, store the keyword and its info on which help was requested behind tag::helpkw in Stack.
template<typename push>
struct match_depvar
Rule used to trigger action.
template<class push>
struct action<match_depvar<push>>
Match depvar (dependent variable) to one of the selected ones.
struct match_pdfname
Rule used to trigger action.
template<>
struct action<match_pdfname>
Match PDF name to the registered ones.
template<template<class> class use, class Option, typename sel, typename vec, typename... tags>
struct check_store_option
Rule used to trigger action.
template<template<class> class use, class Option, typename sel, typename vec, typename... tags>
struct action<check_store_option<use, Option, sel, vec, tags...>>
Put option in state at position given by tags if among the selected.
struct add_depvar
Rule used to trigger action.
template<>
struct action<add_depvar>
Add depvar (dependent variable) to the selected ones.
template<class keyword, typename tag, typename... tags>
struct check_lower_bound
Rule used to trigger action.
template<class keyword, typename tag, typename... tags>
struct action<check_lower_bound<keyword, tag, tags...>>
Check if value is larger than lower bound.
template<class keyword, typename tag, typename... tags>
struct check_upper_bound
Rule used to trigger action.
template<class keyword, typename tag, typename... tags>
struct action<check_upper_bound<keyword, tag, tags...>>
Check if value is lower than upper bound.
template<typename tag, typename... tags>
struct start_vector
Rule used to trigger action.
template<class tag, class... tags>
struct action<start_vector<tag, tags...>>
Start new vector in vector.
template<typename tag, typename... tags>
struct start_vector_back
Rule used to trigger action.
template<class tag, class... tags>
struct action<start_vector_back<tag, tags...>>
Start new vector in back of a vector.
template<typename tag, typename... tags>
struct start_vector_back_back
Rule used to trigger action.
template<class tag, class... tags>
struct action<start_vector_back_back<tag, tags...>>
Start new vector in back of a vector.
template<typename tk::ctr::Moment, char var = '\0'>
struct push_term
Rule used to trigger action.
template<tk::ctr::Moment m, char var>
struct action<push_term<m, var>>
Add matched value as Term into vector of vector of statistics.
template<tk::ctr::Moment m>
struct push_sample
Rule used to trigger action.
template<tk::ctr::Moment m>
struct action<push_sample<m>>
Add matched value as Term into vector of vector of PDFs.
struct push_binsize
Rule used to trigger action.
template<>
struct action<push_binsize>
Push matched value into vector of vector binsizes.
struct push_extents
Rule used to trigger action.
template<>
struct action<push_extents>
Push matched value into vector of PDF extents.
template<class eq, class param, class... xparam>
struct check_vector
Rule used to trigger action.
template<class eq, class param, class... xparam>
struct action<check_vector<eq, param, xparam...>>
Check parameter vector.
struct noop
Rule used to trigger action.
template<>
struct action<noop>
Action that does nothing.
template<class eq, class param, class... xparam>
struct check_spikes
Rule used to trigger action.
template<class eq, class param, class... xparam>
struct action<check_spikes<eq, param, xparam...>>
template<class eq, class param, class... xparam>
struct check_betapdfs
Rule used to trigger action.
template<class eq, class param, class... xparam>
struct action<check_betapdfs<eq, param, xparam...>>
template<class eq, class param, class... xparam>
struct check_gammapdfs
Rule used to trigger action.
template<class eq, class param, class... xparam>
struct action<check_gammapdfs<eq, param, xparam...>>
template<class eq, class param, class... xparam>
struct check_dirichletpdf
Rule used to trigger action.
template<class eq, class param, class... xparam>
struct action<check_dirichletpdf<eq, param, xparam...>>
template<class eq, class param, class... xparam>
struct check_gaussians
Rule used to trigger action.
template<class eq, class param, class... xparam>
struct action<check_gaussians<eq, param, xparam...>>
struct check_expectation
Rule used to trigger action.
template<>
struct action<check_expectation>
Check if there is at least one variable in expectation.
struct check_binsizes
Rule used to trigger action.
template<>
struct action<check_binsizes>
Check if the number of binsizes equal the PDF sample space variables.
struct check_extents
Rule used to trigger action.
template<>
struct action<check_extents>
Check if the number of extents equal 2 * the PDF sample space variables.
struct check_samples
Rule used to trigger action.
template<>
struct action<check_samples>
Check if there is at least one sample space variable in PDF.
struct save_field
Rule used to trigger action.
template<>
struct action<save_field>
Save field ID to parser's state so push_term can pick it up.
template<typename Tag, typename... Tags>
struct store_lua
Rule used to trigger action.
template<typename Tag, typename... Tags>
struct action<store_lua<Tag, Tags...>>
Append character parsed in a lua ... end block to a string.
template<class token, class erased>
struct trim
Read 'token' until 'erased' trimming, i.e., not consuming, 'erased'.
template<MsgType type, MsgKey key>
struct unknown
Match unknown keyword and handle error.
template<class keyword>
struct alias
template<class keyword>
struct verbose
template<class token>
struct readkw
Read keyword 'token' padded by blank at left and space at right.
template<class keyword, typename = void>
struct readcmd
template<class keyword>
struct readcmd<keyword, typename if_<false, typename keyword::info::alias>::type>
template<class keyword, class... actions>
struct scan
Scan input padded by blank at left and space at right and if it matches 'keyword', apply 'actions'.
template<class keywords, class action, class end = pegtl::space>
struct scan_until
Scan input padded by blank at left and space at right and if it matches 'keywords', apply 'action'.
template<class keyword, class... actions>
struct exact_scan
Scan input padded by blank at left and space at right and if it exactly matches 'keyword', apply 'actions'.
struct comment
Parse comment: start with '#' until eol.
struct ignore
Ignore comments and empty lines.
struct number
Parse a number: an optional sign followed by digits.
template<class endkeyword, typename... tokens>
struct block
Plow through 'tokens' until 'endkeyword'.
template<class key, class insert, class endkeyword, class starter = noop, class value = pegtl::digit>
struct dimensions
Read in list of dimensions between keywords 'key' and 'endkeyword', calling 'insert' for each if matches and allow comments between values.
template<class key, class insert, class endkeyword, class starter = noop, class value = number>
struct vector
template<class insert, char lbound = '"', char rbound = '"'>
struct quoted
Scan string between characters 'lbound' and 'rbound' and if matches apply action 'insert'.
template<template<class> class use, class tag, class... tags>
struct filename
Read and store a filename between quotes.
template<class keyword, class insert, class kw_type = pegtl::digit>
struct process
Process 'keyword' and if matches, parse following token (expecting 'kw_type' and call 'insert' action on it.
template<class keyword, class... actions>
struct process_alpha
Process 'keyword' and if matches, parse following token (expecting pegtl::alpha and call zero or more actions on it.
template<template<class> class use, class keyword, class insert, class kw_type, class tag, class... tags>
struct process_cmd
Process command line 'keyword' and call its 'insert' action if matches 'kw_type'.
template<template<class> class use, class keyword, typename tag, typename... tags>
struct process_cmd_switch
template<typename keywords, typename... ign>
struct read_file
Generic file parser entry point: parse 'keywords' and 'ignore' until end of file.
struct charmarg
Process but ignore Charm++'s charmrun arguments starting with '+'.
template<typename keywords>
struct read_string
Generic string parser entry point: parse 'keywords' until end of string.
template<template<class> class use, typename keyword, typename option, typename field, typename sel, typename vec, typename... tags>
struct rng_option
template<typename var>
struct fieldvar
Match fieldvar: a character, denoting a variable, optionally followed by a digit.
struct term
Match term: upper or lowercase fieldvar matched to selected depvars for stats.
template<class c, tk::ctr::Moment m>
struct sample_space_var
sample space variable: fieldvar matched to selected depvars
struct samples
Match samples: sample space variables optionally separated by fillers.
struct bins
Match bin(sizes): real numbers as many sample space dimensions were given.
struct parse_expectations
Plow through expectations between characters '<' and '>'.
struct sample_space
Match list of sample space variables with error checking.
struct extents
Match extents: optional user-specified extents of PDF sample space.
struct bins_exts
Match binsizes followed by optional extents with error checking.
struct parse_pdf
Match pdf description: name + sample space specification.
template<template<class> class use, class prec>
struct precision
Match precision of floating-point numbers in digits (for text output)
template<typename keyword, class kw_type, template<class...> class store, typename... tags>
struct control
Match control parameter, enforce bounds if defined.
template<template<class> class use, typename keyword, typename Tag>
struct discrparam
Match discretization control parameter.
template<typename keyword, typename Tag>
struct component
Match component control parameter.
template<typename keyword, typename Tag>
struct interval_iter
Match interval control parameter in units of iteration count.
template<typename keyword, typename Tag>
struct interval_time
Match interval control parameter in units of physics time.
template<template<class> class use, template<class... Ts> class store>
struct statistics
Parse statistics ... end block.
template<template<class> class use, template<class... Ts> class store>
struct diagnostics
Parse diagnostics ... end block.
template<template<class> class use, typename Tag, typename... Tags>
struct lua
Parse lua ... end block and store it behind Tag, Tags..., tag::lua.
template<typename keyword, typename kw_type, typename model, typename Tag>
struct parameter
Match model parameter.
template<template<class> class use, typename keyword, typename option, typename model, typename... tags>
struct rng
Match rng parameter.
template<template<class> class use, class rngs>
struct rngblock
Match rngs ... end block.
template<template<class> class use, typename keyword, template<class, class...> class store, template<class, class...> class start, template<class, class, class...> class check, typename eq, typename param, typename... xparams>
struct parameter_vector
template<template<class> class use, typename keyword, class option, template<class, class...> class store, template<class, class...> class start, template<class, class> class check, typename eq, typename param>
struct option_vector
template<template<class> class use, typename model, typename Tag>
struct depvar
Match model parameter dependent variable.
template<template<class> class use>
struct title
Match and set keyword 'title'.
template<template<class> class use, typename keyword, typename option, typename p, typename... tags>
struct policy
Match and set policy parameter.
template<class keyword, class store>
struct pdf_option
Match and set a PDF option.
template<template<class> class use, template<class... Ts> class store>
struct pdfs
Match pdfs ... end block.
template<typename keyword, typename pool>
struct use
Ensure that a grammar only uses keywords from a pool of pre-defined keywords.
template<class eq>
struct register_inciter_eq
Rule used to trigger action.
template<class eq>
struct action<register_inciter_eq<eq>>
Register differential equation after parsing its block.
template<class eq>
struct check_mesh
Rule used to trigger action.
template<class eq>
struct action<check_mesh<eq>>
Check mesh ... end block for correctness.
template<class eq>
struct check_transport
Rule used to trigger action.
template<class eq>
struct action<check_transport<eq>>
Set defaults and do error checking on the transport equation block.
template<class eq>
struct check_compflow
Rule used to trigger action.
template<class eq>
struct action<check_compflow<eq>>
Set defaults and do error checking on the compressible flow equation block.
template<class eq>
struct check_multimat
Rule used to trigger action.
template<class eq>
struct action<check_multimat<eq>>
Set defaults and do error checking on the multimaterial compressible flow equation block.
template<class Option, typename... tags>
struct store_inciter_option
Rule used to trigger action.
template<class Option, typename... tags>
struct action<store_inciter_option<Option, tags...>>
Put option in state at position given by tags.
template<typename Input, typename Stack>
struct ensure_disjoint
template<typename Stack>
struct count_meshes
template<typename Stack>
struct assign_meshid
struct configure_scheme
Rule used to trigger action.
template<>
struct action<configure_scheme>
struct check_inciter
Rule used to trigger action.
template<>
struct action<check_inciter>
Do error checking on the inciter block.
struct check_ale
Rule used to trigger action.
template<>
struct action<check_ale>
Do error checking on the inciter block.
template<typename Feature>
struct enable
Rule used to trigger action.
template<typename Feature>
struct action<enable<Feature>>
Enable adaptive mesh refinement (AMR)
struct compute_refvar_idx
Rule used to trigger action.
template<>
struct action<compute_refvar_idx>
struct check_amr_errors
Rule used to trigger action.
template<>
struct action<check_amr_errors>
struct check_pref_errors
Rule used to trigger action.
template<>
struct action<check_pref_errors>
Do error checking for the pref...end block.
struct match_pointname
Rule used to trigger action.
template<>
struct action<match_pointname>
Match PDF name to the registered ones.
struct push_depvar
Rule used to trigger action.
template<>
struct action<push_depvar>
struct push_matvar
Rule used to trigger action.
template<>
struct action<push_matvar>
template<typename Stack>
struct AddOutVarHuman
struct push_humanvar
Rule used to trigger action.
template<>
struct action<push_humanvar>
struct set_outvar_alias
Rule used to trigger action.
template<>
struct action<set_outvar_alias>
Set alias of last pushed output variable.
template<typename Stack>
struct OutVarBounds
Function object for error checking outvar bounds for each equation type.
struct check_outvar
Rule used to trigger action.
template<>
struct action<check_outvar>
Bounds checking for output variables at the end of a var ... end block.
struct set_centering
Rule used to trigger action.
template<>
struct action<set_centering>
Set variable centering in parser's state.
struct match_outvar
Rule used to trigger action.
template<>
struct action<match_outvar>
Match output variable based on depvar.
template<template<class> class StoreTransfer>
struct push_transfer
Rule used to trigger action.
template<template<class> class StoreTransfer>
struct action<push_transfer<StoreTransfer>>
template<template<class> class use, class Option, typename field, typename sel, typename vec, typename tag, typename... tags>
struct insert_seq
Rule used to trigger action.
template<template<class> class use, class Option, typename field, typename sel, typename vec, typename tag, typename... tags>
struct action<insert_seq<use, Option, field, sel, vec, tag, tags...>>
Convert and insert RNGSSE sequence option value to map at position given by tags.
template<class Option, typename... tags>
struct store_rngtest_option
Rule used to trigger action.
template<class Option, typename... tags>
struct action<store_rngtest_option<Option, tags...>>
Put option in state at position given by tags.
template<class Option, typename... tags>
struct store_walker_option
Rule used to trigger action.
template<class Option, typename... tags>
struct action<store_walker_option<Option, tags...>>
Put option in state at position given by tags.
template<class eq>
struct register_eq
Rule used to trigger action.
template<class eq>
struct action<register_eq<eq>>
Register differential equation after parsing its block.
template<class eq, class vec, MsgKey key>
struct check_vector_exists
Rule used to trigger action.
template<class eq, class vec, MsgKey Key>
struct action<check_vector_exists<eq, vec, Key>>
Check the existence of a vector (required for a block)
template<class eq, class vec>
struct check_vector_size
Rule used to trigger action.
template<class eq, class vec>
struct action<check_vector_size<eq, vec>>
Do error checking of a vector (required for a block)
template<class eq, class vec>
struct check_mean_gradient
Rule used to trigger action.
template<class eq, class vec>
struct action<check_mean_gradient<eq, vec>>
Do error checking for a vector of prescribed mean gradient.
template<class eq, class vec>
struct check_gravity
Rule used to trigger action.
template<class eq, class vec>
struct action<check_gravity<eq, vec>>
Do error checking for a vector of prescribed mean gradient.
template<class eq>
struct check_eq
Rule used to trigger action.
template<class eq>
struct action<check_eq<eq>>
Do general error checking on the differential equation block.
template<class eq>
struct check_init
Rule used to trigger action.
template<class eq>
struct action<check_init<eq>>
Do error checking on the selected initialization policy.
struct check_velocity
Rule used to trigger action.
template<>
struct action<check_velocity>
Do error checking on the velocity eq block.
struct check_position
Rule used to trigger action.
template<>
struct action<check_position>
Do error checking on the position eq block and compute coupling.
struct check_dissipation
Rule used to trigger action.
template<>
struct action<check_dissipation>
Do error checking on the dissipation eq block and compute coupling.
struct check_mixmassfracbeta
Rule used to trigger action.
template<>
struct action<check_mixmassfracbeta>
Do error checking on a mass fraction eq block.
struct check_mixdirichlet
Rule used to trigger action.
template<>
struct action<check_mixdirichlet>
Error checks for the mixdirichlet sde.
template<typename eq, typename coupledeq>
struct check_coupling
Rule used to trigger action.
template<typename eq, typename coupledeq>
struct action<check_coupling<eq, coupledeq>>
Put in coupled eq depvar as '-' if no coupling is given.
struct velocity_defaults
Rule used to trigger action.
template<>
struct action<velocity_defaults>
Set defaults for the velocity model.
struct position_defaults
Rule used to trigger action.
template<>
struct action<position_defaults>
Set defaults for all Lagrangian particle position models.
struct dissipation_defaults
Rule used to trigger action.
template<>
struct action<dissipation_defaults>
Set defaults for all Lagrangian particle dissipation models.

Enums

enum MsgType { ERROR =0, WARNING }
C-style enum indicating warning or error (used as template argument)
enum class MsgKey: uint8_t { KEYWORD, MOMENT, QUOTED, LIST, ALIAS, MISSING, PREMATURE, UNSUPPORTED, NOOPTION, NOINIT, NOPROBLEM, NOCOEFF, NOTSELECTED, EXISTS, NODEPVAR, DEPVAR_AS_MESHREF, LOC_NOMESHREF, ORI_NOMESHREF, MULTIMESH, NOSOLVE, NOSUCHDEPVAR, NOSUCHCOMPONENT, NOSUCHOUTVAR, NOSUCHMULTIMATVAR, POSITIVECOMPONENT, NOTALPHA, NOTERMS, ODDSPIKES, HEIGHTSPIKES, NODELTA, NOBETA, NOGAMMA, NOMEAN, NOCOV, NOMKLRNG, WRONGBETAPDF, WRONGGAMMAPDF, WRONGGAUSSIAN, WRONGDIRICHLET, NEGATIVEPARAM, NONCOMP, LARGECOMP, NONMAT, NUMMAT, REPMATID, ONEMATID, GAPMATID, EOSGAMMA, EOSCV, EOSPSTIFF, NORNG, NODT, MULDT, NOSAMPLES, INVALIDSAMPLESPACE, MALFORMEDSAMPLE, INVALIDBINSIZE, INVALIDEXTENT, EXTENTLOWER, NOBINS, ZEROBINSIZE, MAXSAMPLES, MAXBINSIZES, MAXEXTENTS, BINSIZES, PDF, PDFEXISTS, POINTEXISTS, BADPRECISION, BOUNDS, PRECISIONBOUNDS, UNFINISHED, VORTICAL_UNFINISHED, ENERGY_UNFINISHED, RT_UNFINISHED, BC_EMPTY, SYSFCTVAR, BGICMISSING, BGMATIDMISSING, BOXMATIDMISSING, BOXMATIDWRONG, STAGBCWRONG, SKIPBCWRONG, SPONGEBCWRONG, NONDISJOINTBC, WRONGSIZE, WRONGMESHMOTION, STEADYALE, INCOMPLETEUSERFN, HYDROTIMESCALES, HYDROPRODUCTIONS, POSITION_DEPVAR, VELOCITY_DEPVAR, DISSIPATION_DEPVAR, MIXMASSFRACBETA_DEPVAR, POSITION_MISSING, VELOCITY_MISSING, DISSIPATION_MISSING, MIXDIR_RHO, T0REFODD, T0REFNOOP, DTREFNOOP, PREFTOL, CHARMARG, OPTIONAL }
Parser error types.

Functions

template<class Stack, MsgType type, MsgKey key, class Input>
static void Message(Stack& stack, const Input& in)
template<class Stack, template<class> class use, class Option, class DefaultStack, class Input, class... tags>
static void store_option(Stack& stack, const Input& in, const DefaultStack& defaults)
Put option (i.e., a tk::Toggle) in grammar state (or stack) at a position given by tags.
template<typename eq, typename coupledeq, typename id, MsgKey depvar_msg, typename Input, typename Stack>
static void couple(const Input& in, Stack& stack, MsgKey missing)
template<typename eq, typename coupledeq, typename Stack>
static auto coupled(const Stack& stack) -> bool
template<typename eq, typename coupledeq, typename id, typename Stack>
static auto ncomp_coupled(const Stack& stack) -> std::size_t

Variables

Print g_print
static ncomp_t field
Out-of-struct storage of field ID for pushing terms for statistics.
static std::set<char, tk::ctr::CaseInsensitiveCharLess> depvars
Parser-lifetime storage for dependent variables selected.
static std::set<std::string> pdfnames
Parser-lifetime storage for PDF names.
static const std::map<MsgKey, std::string> message
Associate parser errors to error messages.

Enum documentation

enum class tk::grm::MsgKey: uint8_t

Parser error types.

Enumerators
KEYWORD

Unknown keyword.

MOMENT

Unknown Term in a Moment.

QUOTED

String must be double-quoted.

LIST

Unknown value in list.

ALIAS

Alias keyword too long.

MISSING

Required field missing.

PREMATURE

Premature end of line.

UNSUPPORTED

Option not supported.

NOOPTION

Option does not exist.

NOINIT

No (or too many) initialization policy selected.

NOPROBLEM

No test problem type selected.

NOCOEFF

No coefficients policy selected.

NOTSELECTED

Option not selected upstream.

EXISTS

Variable already used.

NODEPVAR

Dependent variable has not been specified.

DEPVAR_AS_MESHREF

Depvar upstream of meshref has not been specified.

LOC_NOMESHREF

Mesh location without reference mesh.

ORI_NOMESHREF

Mesh orientation without reference mesh.

MULTIMESH

If meshes are assigned, all solvers must have one.

NOSOLVE

Dependent variable to solve for has not been spec'd.

NOSUCHDEPVAR

Dependent variable has not been previously selected.

NOSUCHCOMPONENT

No such scalar component.

NOSUCHOUTVAR

Output variable label not acceptable.

NOSUCHMULTIMATVAR

Variable not acceptable for multi-material output.

POSITIVECOMPONENT

Scalar component must be positive.

NOTALPHA

Variable must be alphanumeric.

NOTERMS

Statistic need a variable.

ODDSPIKES

Incomplete spikes block.

HEIGHTSPIKES

Height-sum of spikes does not add up to unity.

NODELTA

No icdelta...end block when initpolicy = jointdelta.

NOBETA

No icbeta...end block when initpolicy = jointbeta.

NOGAMMA

No icgamma...end block when initpolicy = jointgamma.

NOMEAN

No mean when initpolicy = jointcorrgaussian.

NOCOV

No cov when initpolicy = jointcorrgaussian.

NOMKLRNG

No MKL RNG configured.

WRONGBETAPDF

Wrong number of parameters for a beta pdf.

WRONGGAMMAPDF

Wrong number of parameters for a gamma pdf.

WRONGGAUSSIAN

Wrong number of parameters for a Gaussian PDF.

WRONGDIRICHLET

Wrong number of parameters for a Dirichlet PDF.

NEGATIVEPARAM

Negative parameter given configuring a PDF.

NONCOMP

No number of components selected.

LARGECOMP

Component index indexing out of max eq sys ncomp.

NONMAT

No number of materials selected.

NUMMAT

Incorrect number of materials selected.

REPMATID

Repeating material id.

ONEMATID

Material id not one-based.

GAPMATID

Material id not contiguous.

EOSGAMMA

Wrong number of EOS gamma parameters.

EOSCV

Wrong number of EOS cv parameters.

EOSPSTIFF

Wrong number of EOS pstiff parameters.

NORNG

No RNG selected.

NODT

No time-step-size policy selected.

MULDT

Multiple time-step-size policies selected.

NOSAMPLES

PDF need a variable.

INVALIDSAMPLESPACE

PDF sample space specification incorrect.

MALFORMEDSAMPLE

PDF sample space variable specification incorrect.

INVALIDBINSIZE

PDF sample space bin size specification incorrect.

INVALIDEXTENT

PDF sample space extent specification incorrect.

EXTENTLOWER

PDF sample space extents in non-increasing order.

NOBINS

PDF sample space bin size required.

ZEROBINSIZE

PDF sample space bin size incorrect.

MAXSAMPLES

PDF sample space dimension too large.

MAXBINSIZES

PDF sample space bin sizes too many.

MAXEXTENTS

PDF sample space extent-pairs too many.

BINSIZES

PDF sample space vars unequal to number of bins.

PDF

PDF specification syntax error.

PDFEXISTS

PDF identifier already defined.

POINTEXISTS

Point identifier already defined.

BADPRECISION

Floating point precision specification incorrect.

BOUNDS

Specified value out of bounds.

PRECISIONBOUNDS

Floating point precision spec out of bounds.

UNFINISHED

Unfinished block.

VORTICAL_UNFINISHED

Vortical flow problem configuration unfinished.

ENERGY_UNFINISHED

Nonlinear energy growth problem config unfinished.

RT_UNFINISHED

Reyleigh-Taylor unstable configuration unfinished.

BC_EMPTY

Empty boundary condition block.

SYSFCTVAR

System-FCT variable index incorrect.

BGICMISSING

Background IC unspecified.

BGMATIDMISSING

Background material id unspecified.

BOXMATIDMISSING

Box material id unspecified.

BOXMATIDWRONG

Box material id incorrect.

STAGBCWRONG

Stagnation BC incorrectly configured.

SKIPBCWRONG

Skip BC incorrectly configured.

SPONGEBCWRONG

Sponge BC incorrectly configured.

NONDISJOINTBC

Different BC types assigned to the same side set.

WRONGSIZE

Size of parameter vector incorrect.

WRONGMESHMOTION

Error in mesh motion dimensions.

STEADYALE

ALE + steady state not supported.

INCOMPLETEUSERFN

Incomplete user-defined function.

HYDROTIMESCALES

Missing required hydrotimescales vector.

HYDROPRODUCTIONS

Missing required hydroproductions vector.

POSITION_DEPVAR

Missing required position model dependent variable.

VELOCITY_DEPVAR

Missing required velocity model dependent variable.

DISSIPATION_DEPVAR

Missing required dissipation model dependent var.

MIXMASSFRACBETA_DEPVAR

Missing required mass fraction model dependent var.

POSITION_MISSING

Missing required position model.

VELOCITY_MISSING

Missing required velocity model.

DISSIPATION_MISSING

Missing required dissipation model.

MIXDIR_RHO

MixDirichlet parameter vector rho inconsistent.

T0REFODD

AMR initref vector size is odd (must be even)

T0REFNOOP

AMR t<0 refinement will be no-op.

DTREFNOOP

AMR t>0 refinement will be no-op.

PREFTOL

p-refinement tolerance out of bounds

CHARMARG

Argument inteded for the Charm++ runtime system.

OPTIONAL

Function documentation

template<class Stack, MsgType type, MsgKey key, class Input>
static void tk::grm::Message(Stack& stack, const Input& in)

Parameters
stack in/out Grammar stack (a tagged tuple) to operate on
in in Last parsed PEGTL input token (can be empty, depending on what context this function gets called.

Parser error and warning message handler.

This function is used to associated and dispatch an error or a warning during parsing. After finding the error message corresponding to a key, it pushes back the message to a std::vector of std::string, which then will be diagnosed later by tk::FileParser::diagnostics. The template arguments define (1) the grammar stack (Stack, a tagged tuple) to operate on, (2) the message type (error or warning), and (3) the message key used to look up the error message associated with the key.

template<class Stack, template<class> class use, class Option, class DefaultStack, class Input, class... tags>
static void tk::grm::store_option(Stack& stack, const Input& in, const DefaultStack& defaults)

Put option (i.e., a tk::Toggle) in grammar state (or stack) at a position given by tags.

Parameters
stack in/out Grammar stack (a tagged tuple) to operate on
in in Last parsed PEGTL input token
defaults in Reference to a copy of the full grammar stack at the initial state, i.e., containing the defaults for all of its fields. This is used to detect if the user wants to overwrite an option value that has already been set differently from the default

This function is used to store an option (an object deriving from tk::Toggle) into the grammar stack. See walker::ctr::DiffEq for an example specialization of tk::Toggle to see how an option is created from tk::Toggle.) The grammar stack is a hiearchical tagged tuple and the variadic list of template arguments, tags..., are used to specify a series tags (empty structs, see Control/Tags.h) addressing a particular field of the tagged tuple, i.e., one tag for every additional depth level.

template<typename eq, typename coupledeq, typename id, MsgKey depvar_msg, typename Input, typename Stack>
static void tk::grm::couple(const Input& in, Stack& stack, MsgKey missing)

Template parameters
eq Tag of equation to be coupled
coupledeq Tag of equation coupled to eq
id Tag to vector to hold (relative) system ids of DiffEqs coupled to eq among other DiffEqs of type coupledeq
depvar_msg Error message key to use on missing coupled depvar
Input
Stack
Parameters
in in Parser input
stack in/out Grammar stack to work with
missing in Error message key to use on missing coupled equation if the coupling is required. Pass MsgKey::OPTIONAL as missing if the coupling is optional.

Setup coupling between two equations This function computes and assigns the relative system id of a an equation coupled to another equation. The two equations being coupled are given by the two template arguments 'eq' and 'coupledeq'. The goal is to compute the id of the coupled eq that identifies it among potentially multiple coupled equations. Ths id is simply an integer which is a relative index, starting from zero, and uniquely identifies the equation system coupled to eq. As a result, when eq is instantiated, this id can be used to query any detail of the user configuration for the coupledeq equation coupled to eq.

template<typename eq, typename coupledeq, typename Stack>
static bool tk::grm::coupled(const Stack& stack)

Template parameters
eq Tag of the equation to query
coupledeq Tag of the equation that is potentially coupled to equation 'eq'
Stack
Parameters
stack in Grammar stack to work with
Returns True if equation 'eq' is coupled to equation 'coupledeq'

Query if equation 'eq' has been coupled to equation 'coupledeq'

template<typename eq, typename coupledeq, typename id, typename Stack>
static std::size_t tk::grm::ncomp_coupled(const Stack& stack)

Template parameters
eq Tag of the equation that is coupled
coupledeq Tag of the equation that is coupled to equation 'eq'
id Tag to access the coupled equation 'eq' (relative) ids, see tk::grm::couple.
Stack
Parameters
stack in Grammar stack to work with
Returns Number of scalar components of coupled equation

Query number of components of coupled equation

Variable documentation

Print tk::grm::g_print

Parser's printer: this should be defined once per library in global-scope (still in namespace, of course) by a parser. It is defined in Control/[executable]/CmdLine/Parser.C, since every executable has at least a command line parser.

static std::set<char, tk::ctr::CaseInsensitiveCharLess> tk::grm::depvars

Parser-lifetime storage for dependent variables selected.

Used to track the dependent variable of differential equations (i.e., models) assigned during parsing. It needs to be case insensitive since we only care about whether the variable is selected or not and not whether it denotes a full variable (upper case) or a fluctuation (lower case). This is true for both inserting variables into the set as well as at matching terms of products in parsing requested statistics.

static std::set<std::string> tk::grm::pdfnames

Parser-lifetime storage for PDF names.

Used to track the names of PDFs registered so that parsing new ones can be required to be unique.