Reference documentation for deal.II version GIT defb42778c 2022-12-05 01:15:02+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Member Functions | Public Attributes | List of all members
internal::FunctionParser::ParserData Struct Reference

#include <deal.II/base/mu_parser_internal.h>

Public Member Functions

 ParserData ()=default
 
 ParserData (const ParserData &)=delete
 

Public Attributes

std::vector< doublevars
 
std::vector< std::unique_ptr< muParserBase > > parsers
 

Detailed Description

Class containing the mutable state required by muParser.

Note
For performance reasons it is best to put all mutable state in a single object so that, for each function call, we only need to get thread-local data exactly once.

Definition at line 127 of file mu_parser_internal.h.

Constructor & Destructor Documentation

◆ ParserData() [1/2]

internal::FunctionParser::ParserData::ParserData ( )
default

Default constructor. Threads::ThreadLocalStorage requires that objects be either default- or copy-constructible: make sure we satisfy the first case by declaring it here.

◆ ParserData() [2/2]

internal::FunctionParser::ParserData::ParserData ( const ParserData )
delete

std::is_copy_constructible gives the wrong answer for containers with non-copy constructible types (e.g., std::vector<std::unique_ptr<int>>)

  • for more information, see the documentation of Threads::ThreadLocalStorage. Hence, to avoid compilation failures, just delete the copy constructor completely.

Member Data Documentation

◆ vars

std::vector<double> internal::FunctionParser::ParserData::vars

Scratch array used to set independent variables (i.e., x, y, and t) before each muParser call.

Definition at line 149 of file mu_parser_internal.h.

◆ parsers

std::vector<std::unique_ptr<muParserBase> > internal::FunctionParser::ParserData::parsers

The actual muParser parser objects (hidden with PIMPL).

Definition at line 154 of file mu_parser_internal.h.


The documentation for this struct was generated from the following file: