Block-Structured AMR Software Framework
 
Loading...
Searching...
No Matches
amrex::Parser Class Reference

#include <AMReX_Parser.H>

Classes

struct  Data
 

Public Member Functions

 Parser (std::string const &func_body)
 
 Parser ()=default
 
void define (std::string const &func_body)
 
 operator bool () const
 
void setConstant (std::string const &name, double c)
 
void registerVariables (Vector< std::string > const &vars)
 
void registerUserFn1 (std::string const &name, ParserUserFn1 fh, ParserUserFn1 fd)
 Register user defined host and functions with one argument.
 
void registerUserFn2 (std::string const &name, ParserUserFn2 fh, ParserUserFn2 fd)
 Register user defined host and functions with two arguments.
 
void registerUserFn3 (std::string const &name, ParserUserFn3 fh, ParserUserFn3 fd)
 Register user defined host and functions with three arguments.
 
void registerUserFn4 (std::string const &name, ParserUserFn4 fh, ParserUserFn4 fd)
 Register user defined host and functions with four arguments.
 
void print () const
 
void printExe () const
 
int depth () const
 
int maxStackSize () const
 
std::string expr () const
 
std::set< std::string > symbols () const
 
std::map< std::string, int > const & userFunctions () const
 User defined functions in std::map<name, # of args>
 
template<int N>
ParserExecutor< N > compile () const
 This compiles for both GPU and CPU.
 
template<int N>
ParserExecutor< N > compileHost () const
 This compiles for CPU only.
 

Private Member Functions

template<int argc, typename F >
void register_user_fn (std::string const &name, F fh, F fd)
 

Private Attributes

std::shared_ptr< Datam_data
 
std::map< std::string, int > m_ufs
 
std::map< std::string, std::pair< void *, void * > > m_uf_ptrs
 
Vector< std::string > m_vars
 

Constructor & Destructor Documentation

◆ Parser() [1/2]

amrex::Parser::Parser ( std::string const &  func_body)

◆ Parser() [2/2]

amrex::Parser::Parser ( )
default

Member Function Documentation

◆ compile()

template<int N>
ParserExecutor< N > amrex::Parser::compile ( ) const

This compiles for both GPU and CPU.

◆ compileHost()

template<int N>
ParserExecutor< N > amrex::Parser::compileHost ( ) const

This compiles for CPU only.

◆ define()

void amrex::Parser::define ( std::string const &  func_body)

◆ depth()

int amrex::Parser::depth ( ) const

◆ expr()

std::string amrex::Parser::expr ( ) const

◆ maxStackSize()

int amrex::Parser::maxStackSize ( ) const

◆ operator bool()

amrex::Parser::operator bool ( ) const
explicit

◆ print()

void amrex::Parser::print ( ) const

◆ printExe()

void amrex::Parser::printExe ( ) const

◆ register_user_fn()

template<int argc, typename F >
void amrex::Parser::register_user_fn ( std::string const &  name,
F  fh,
F  fd 
)
private

◆ registerUserFn1()

void amrex::Parser::registerUserFn1 ( std::string const &  name,
ParserUserFn1  fh,
ParserUserFn1  fd 
)

Register user defined host and functions with one argument.

◆ registerUserFn2()

void amrex::Parser::registerUserFn2 ( std::string const &  name,
ParserUserFn2  fh,
ParserUserFn2  fd 
)

Register user defined host and functions with two arguments.

◆ registerUserFn3()

void amrex::Parser::registerUserFn3 ( std::string const &  name,
ParserUserFn3  fh,
ParserUserFn3  fd 
)

Register user defined host and functions with three arguments.

◆ registerUserFn4()

void amrex::Parser::registerUserFn4 ( std::string const &  name,
ParserUserFn4  fh,
ParserUserFn4  fd 
)

Register user defined host and functions with four arguments.

◆ registerVariables()

void amrex::Parser::registerVariables ( Vector< std::string > const &  vars)

◆ setConstant()

void amrex::Parser::setConstant ( std::string const &  name,
double  c 
)

◆ symbols()

std::set< std::string > amrex::Parser::symbols ( ) const

◆ userFunctions()

std::map< std::string, int > const & amrex::Parser::userFunctions ( ) const

User defined functions in std::map<name, # of args>

Member Data Documentation

◆ m_data

std::shared_ptr<Data> amrex::Parser::m_data
private

◆ m_uf_ptrs

std::map<std::string,std::pair<void*,void*> > amrex::Parser::m_uf_ptrs
private

◆ m_ufs

std::map<std::string,int> amrex::Parser::m_ufs
private

◆ m_vars

Vector<std::string> amrex::Parser::m_vars
private

The documentation for this class was generated from the following files: