NeoN
A framework for CFD software
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
NeoN::dsl::Expression< ValueType, IndexType > Class Template Reference

#include <expression.hpp>

Public Types

using ExpressionValueType = ValueType
 

Public Member Functions

 Expression (const Executor &exec)
 
 Expression (const Expression &exp)
 
 Expression (const SpatialOperator< ValueType > &oper)
 
Expressionoperator= (const Expression &exp)
 
 Expression (const TemporalOperator< ValueType > &oper)
 
void read (const Dictionary &input)
 
Vector< ValueType > explicitOperation (localIdx nCells) const
 
Vector< ValueType > explicitOperation (Vector< ValueType > &source) const
 
Vector< ValueType > explicitOperation (Vector< ValueType > &source, scalar t, scalar dt) const
 
template<typename AssemblyType = ValueType>
void assembleSpatialOperator (la::LinearSystem< AssemblyType, ValueType > &ls) const
 compute matrix coefficients based on all spatial operators
 
template<typename AssemblyType = ValueType>
void assembleTemporalOperator (la::LinearSystem< AssemblyType, ValueType > &ls, scalar t, scalar dt) const
 compute matrix coefficients based on all temporal operators assemble directly into linear system
 
template<typename AssemblyType = ValueType>
void assembleExplicitSource (la::LinearSystem< AssemblyType, ValueType > &ls, const UnstructuredMesh &mesh) const
 
template<typename AssemblyType = ValueType>
la::LinearSystem< AssemblyType, ValueType > assemble (const UnstructuredMesh &mesh, scalar t, scalar dt, std::vector< const PostAssemblyBase< ValueType, IndexType > * > ps={}) const
 construct a linear system and force assembly including explicit source terms
 
template<typename AssemblyType = ValueType>
void assemble (scalar t, scalar dt, la::LinearSystem< AssemblyType, ValueType > &ls, const UnstructuredMesh &mesh, std::vector< const PostAssemblyBase< ValueType, IndexType > * > ps={}) const
 assemble into a given linear system including explicit source terms
 
template<typename AssemblyType = ValueType>
void assemble (scalar t, scalar dt, la::LinearSystem< AssemblyType, ValueType > &ls, std::vector< const PostAssemblyBase< ValueType, IndexType > * > ps={}) const
 
void addOperator (const SpatialOperator< ValueType > &oper)
 
void addOperator (const TemporalOperator< ValueType > &oper)
 
void addExpression (const Expression &equation)
 
template<typename OperatorType , Operator::Type Type>
bool hasOperatorOfType (const std::string &name) const
 returns operator of given type and name exists
 
template<Operator::Type Type>
bool hasOperator (const std::string &name) const
 returns whether the expression contains an operator with a given name
 
template<typename OperatorType , Operator::Type Type>
OperatorType & getOperator (const std::string &name)
 returns operator of given type and name
 
template<Operator::Type Type>
void dropOperator (const std::string &name)
 removes operator of given name
 
localIdx size () const
 
const std::vector< TemporalOperator< ValueType > > & temporalOperators () const
 
const std::vector< SpatialOperator< ValueType > > & spatialOperators () const
 
std::vector< TemporalOperator< ValueType > > & temporalOperators ()
 
std::vector< SpatialOperator< ValueType > > & spatialOperators ()
 
const Executorexec () const
 

Detailed Description

template<typename ValueType, typename IndexType = localIdx>
class NeoN::dsl::Expression< ValueType, IndexType >

Definition at line 265 of file expression.hpp.

Member Typedef Documentation

◆ ExpressionValueType

template<typename ValueType , typename IndexType = localIdx>
using NeoN::dsl::Expression< ValueType, IndexType >::ExpressionValueType = ValueType

Definition at line 269 of file expression.hpp.

Constructor & Destructor Documentation

◆ Expression() [1/4]

template<typename ValueType , typename IndexType = localIdx>
NeoN::dsl::Expression< ValueType, IndexType >::Expression ( const Executor exec)
inline

Definition at line 271 of file expression.hpp.

◆ Expression() [2/4]

template<typename ValueType , typename IndexType = localIdx>
NeoN::dsl::Expression< ValueType, IndexType >::Expression ( const Expression< ValueType, IndexType > &  exp)
inline

Definition at line 273 of file expression.hpp.

◆ Expression() [3/4]

template<typename ValueType , typename IndexType = localIdx>
NeoN::dsl::Expression< ValueType, IndexType >::Expression ( const SpatialOperator< ValueType > &  oper)
inline

Definition at line 278 of file expression.hpp.

◆ Expression() [4/4]

template<typename ValueType , typename IndexType = localIdx>
NeoN::dsl::Expression< ValueType, IndexType >::Expression ( const TemporalOperator< ValueType > &  oper)
inline

Definition at line 297 of file expression.hpp.

Member Function Documentation

◆ addExpression()

template<typename ValueType , typename IndexType = localIdx>
void NeoN::dsl::Expression< ValueType, IndexType >::addExpression ( const Expression< ValueType, IndexType > &  equation)
inline

Definition at line 468 of file expression.hpp.

◆ addOperator() [1/2]

template<typename ValueType , typename IndexType = localIdx>
void NeoN::dsl::Expression< ValueType, IndexType >::addOperator ( const SpatialOperator< ValueType > &  oper)
inline

Definition at line 461 of file expression.hpp.

◆ addOperator() [2/2]

template<typename ValueType , typename IndexType = localIdx>
void NeoN::dsl::Expression< ValueType, IndexType >::addOperator ( const TemporalOperator< ValueType > &  oper)
inline

Definition at line 463 of file expression.hpp.

◆ assemble() [1/3]

template<typename ValueType , typename IndexType = localIdx>
template<typename AssemblyType = ValueType>
la::LinearSystem< AssemblyType, ValueType > NeoN::dsl::Expression< ValueType, IndexType >::assemble ( const UnstructuredMesh mesh,
scalar  t,
scalar  dt,
std::vector< const PostAssemblyBase< ValueType, IndexType > * >  ps = {} 
) const
inline

construct a linear system and force assembly including explicit source terms

Parameters
pspost-assembly functors applied to the system after assembly
Returns
the assembled linear system

Definition at line 399 of file expression.hpp.

◆ assemble() [2/3]

template<typename ValueType , typename IndexType = localIdx>
template<typename AssemblyType = ValueType>
void NeoN::dsl::Expression< ValueType, IndexType >::assemble ( scalar  t,
scalar  dt,
la::LinearSystem< AssemblyType, ValueType > &  ls,
const UnstructuredMesh mesh,
std::vector< const PostAssemblyBase< ValueType, IndexType > * >  ps = {} 
) const
inline

assemble into a given linear system including explicit source terms

Parameters
pspost-assembly functors applied to the system after assembly

Definition at line 416 of file expression.hpp.

◆ assemble() [3/3]

template<typename ValueType , typename IndexType = localIdx>
template<typename AssemblyType = ValueType>
void NeoN::dsl::Expression< ValueType, IndexType >::assemble ( scalar  t,
scalar  dt,
la::LinearSystem< AssemblyType, ValueType > &  ls,
std::vector< const PostAssemblyBase< ValueType, IndexType > * >  ps = {} 
) const
inline

Definition at line 433 of file expression.hpp.

◆ assembleExplicitSource()

template<typename ValueType , typename IndexType = localIdx>
template<typename AssemblyType = ValueType>
void NeoN::dsl::Expression< ValueType, IndexType >::assembleExplicitSource ( la::LinearSystem< AssemblyType, ValueType > &  ls,
const UnstructuredMesh mesh 
) const
inline

Definition at line 380 of file expression.hpp.

◆ assembleSpatialOperator()

template<typename ValueType , typename IndexType = localIdx>
template<typename AssemblyType = ValueType>
void NeoN::dsl::Expression< ValueType, IndexType >::assembleSpatialOperator ( la::LinearSystem< AssemblyType, ValueType > &  ls) const
inline

compute matrix coefficients based on all spatial operators

Definition at line 350 of file expression.hpp.

◆ assembleTemporalOperator()

template<typename ValueType , typename IndexType = localIdx>
template<typename AssemblyType = ValueType>
void NeoN::dsl::Expression< ValueType, IndexType >::assembleTemporalOperator ( la::LinearSystem< AssemblyType, ValueType > &  ls,
scalar  t,
scalar  dt 
) const
inline

compute matrix coefficients based on all temporal operators assemble directly into linear system

Definition at line 365 of file expression.hpp.

◆ dropOperator()

template<typename ValueType , typename IndexType = localIdx>
template<Operator::Type Type>
void NeoN::dsl::Expression< ValueType, IndexType >::dropOperator ( const std::string &  name)
inline

removes operator of given name

Definition at line 532 of file expression.hpp.

◆ exec()

template<typename ValueType , typename IndexType = localIdx>
const Executor & NeoN::dsl::Expression< ValueType, IndexType >::exec ( ) const
inline

Definition at line 572 of file expression.hpp.

◆ explicitOperation() [1/3]

template<typename ValueType , typename IndexType = localIdx>
Vector< ValueType > NeoN::dsl::Expression< ValueType, IndexType >::explicitOperation ( localIdx  nCells) const
inline

Definition at line 317 of file expression.hpp.

◆ explicitOperation() [2/3]

template<typename ValueType , typename IndexType = localIdx>
Vector< ValueType > NeoN::dsl::Expression< ValueType, IndexType >::explicitOperation ( Vector< ValueType > &  source) const
inline

Definition at line 324 of file expression.hpp.

◆ explicitOperation() [3/3]

template<typename ValueType , typename IndexType = localIdx>
Vector< ValueType > NeoN::dsl::Expression< ValueType, IndexType >::explicitOperation ( Vector< ValueType > &  source,
scalar  t,
scalar  dt 
) const
inline

Definition at line 336 of file expression.hpp.

◆ getOperator()

template<typename ValueType , typename IndexType = localIdx>
template<typename OperatorType , Operator::Type Type>
OperatorType & NeoN::dsl::Expression< ValueType, IndexType >::getOperator ( const std::string &  name)
inline

returns operator of given type and name

Definition at line 508 of file expression.hpp.

◆ hasOperator()

template<typename ValueType , typename IndexType = localIdx>
template<Operator::Type Type>
bool NeoN::dsl::Expression< ValueType, IndexType >::hasOperator ( const std::string &  name) const
inline

returns whether the expression contains an operator with a given name

Definition at line 500 of file expression.hpp.

◆ hasOperatorOfType()

template<typename ValueType , typename IndexType = localIdx>
template<typename OperatorType , Operator::Type Type>
bool NeoN::dsl::Expression< ValueType, IndexType >::hasOperatorOfType ( const std::string &  name) const
inline

returns operator of given type and name exists

Definition at line 482 of file expression.hpp.

◆ operator=()

template<typename ValueType , typename IndexType = localIdx>
Expression & NeoN::dsl::Expression< ValueType, IndexType >::operator= ( const Expression< ValueType, IndexType > &  exp)
inline

Definition at line 284 of file expression.hpp.

◆ read()

template<typename ValueType , typename IndexType = localIdx>
void NeoN::dsl::Expression< ValueType, IndexType >::read ( const Dictionary input)
inline

Definition at line 304 of file expression.hpp.

◆ size()

template<typename ValueType , typename IndexType = localIdx>
localIdx NeoN::dsl::Expression< ValueType, IndexType >::size ( ) const
inline

Definition at line 552 of file expression.hpp.

◆ spatialOperators() [1/2]

template<typename ValueType , typename IndexType = localIdx>
std::vector< SpatialOperator< ValueType > > & NeoN::dsl::Expression< ValueType, IndexType >::spatialOperators ( )
inline

Definition at line 570 of file expression.hpp.

◆ spatialOperators() [2/2]

template<typename ValueType , typename IndexType = localIdx>
const std::vector< SpatialOperator< ValueType > > & NeoN::dsl::Expression< ValueType, IndexType >::spatialOperators ( ) const
inline

Definition at line 563 of file expression.hpp.

◆ temporalOperators() [1/2]

template<typename ValueType , typename IndexType = localIdx>
std::vector< TemporalOperator< ValueType > > & NeoN::dsl::Expression< ValueType, IndexType >::temporalOperators ( )
inline

Definition at line 568 of file expression.hpp.

◆ temporalOperators() [2/2]

template<typename ValueType , typename IndexType = localIdx>
const std::vector< TemporalOperator< ValueType > > & NeoN::dsl::Expression< ValueType, IndexType >::temporalOperators ( ) const
inline

Definition at line 558 of file expression.hpp.


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