hexed 0.3.0
 
Loading...
Searching...
No Matches
hexed::Output_data Class Referenceabstract

Represents some numerical data which is of interest to the end user. More...

#include <Output_data.hpp>

Inheritance diagram for hexed::Output_data:
hexed::Boundary_func hexed::Qpoint_func hexed::Boundary_expr hexed::Element_info hexed::Heat_flux hexed::Surface_func hexed::Viscous_stress hexed::Advection_state hexed::Art_visc_coef hexed::Art_visc_forcing hexed::Component hexed::Domain_func hexed::Element_func hexed::Fix_admis_coef hexed::Jac_inv_det_func hexed::Jacobian_det_func hexed::Physical_residual hexed::Pow hexed::Qpoint_expr hexed::Scaled hexed::Time_step_scale_func

Public Member Functions

virtual int n_var (int n_dim) const =0
 number of output variables when called on n_dim-dimensional input
 
virtual std::string variable_name (int n_dim, int i_var) const
 name of i_varth variable (for plotting) when called on n_dim-dimensional input
 

Detailed Description

Represents some numerical data which is of interest to the end user.

E.g. flow state, surface stress, grid metrics, etc. Used for specifing what to write in flow visualization files or things to compute integrals of.

Derived classes represent functions of various inputs by implementing a member of the form std::vector<double> operator()(...). Functions that can be called on multiple types of inputs are represented by derived classes that override their base class's operator() by forwarding it to their own overload of it with different arguments. For example, consider Domain_func and Spacetime_func. Domain_func represents a function of position, time, and state variables whereas Spacetime_func represents a function of position and time. A function of position and time is also (trivially) functions of state, position, and time. So, Spacetime_func derives from Domain_func, and Spacetime_func::opertor()(std::vector<double>, double, std::vector<double>) (inherited from Domain_func) calls Spacetime_func::operator()(std::vector<double>, double) (not inherited from any class).

This concept allows the same functions to be used in different applications that invoke them with different arguments, but it makes the inheritance tree quite complicated. Forwarding operator() members are declared private to avoid the technicalities of overloading inherited members.

Member Function Documentation

◆ n_var()

◆ variable_name()


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