Documentation 6b54b78464
Loading...
Searching...
No Matches
datatype_structure.hpp File Reference

Headers for generalized datatypes, defines an interface for AD types. More...

#include <iostream>
#include <complex>
#include <cstdio>
#include "../code_config.hpp"
#include "ad_structure.hpp"

Go to the source code of this file.

Classes

struct  SU2_TYPE::Passive< T >
 Get the passive value of any variable. For most types return directly, specialize for su2double to call GetValue. More...
 
struct  SU2_TYPE::Passive< su2double >
 

Namespaces

namespace  SU2_TYPE
 Namespace for defining the datatype wrapper routines, this acts as a base class for type interfaces for non-primitive dataypes e.g. used by AD, complex etc.
 

Macros

#define SPRINTF   SU2_TYPE::sprintf
 

Functions

void SU2_TYPE::SetValue (su2double &data, const passivedouble &val)
 Set the (primitive) value of the datatype (needs to be implemented for each new type).
 
void SU2_TYPE::SetSecondary (su2double &data, const passivedouble &val)
 Set the secondary value of the datatype (needs to be implemented for each new type).
 
passivedouble SU2_TYPE::GetValue (const su2double &data)
 Get the (primitive) value of the datatype (needs to be specialized for active types).
 
passivedouble SU2_TYPE::GetSecondary (const su2double &data)
 Get the secondary value of the datatype (needs to be implemented for each new type).
 
passivedouble SU2_TYPE::GetDerivative (const su2double &data)
 Get the derivative value of the datatype (needs to be implemented for each new type).
 
void SU2_TYPE::SetDerivative (su2double &data, const passivedouble &val)
 Set the derivative value of the datatype (needs to be implemented for each new type).
 
template<class T >
auto SU2_TYPE::PassiveValue (const T &val)
 
int SU2_TYPE::Int (const su2double &data)
 Casts the primitive value to int (uses GetValue, already implemented for each type).
 
short SU2_TYPE::Short (const su2double &data)
 Casts the primitive value to short (uses GetValue, already implemented for each type).
 
template<class T , su2enable_if< std::is_trivial< T >::value > = 0>
const T & SU2_TYPE::_printGetValue (const T &val)
 
template<class T , su2enable_if<!std::is_trivial< T >::value > = 0>
passivedouble SU2_TYPE::_printGetValue (const T &val)
 
template<class... Ts>
void SU2_TYPE::sprintf (char *str, const char *format, Ts &&... args)
 Wrapper to sprintf to be able to print active types and AD expressions.
 
void SU2_TYPE::sprintf (char *str, const char *literal)
 

Detailed Description

Headers for generalized datatypes, defines an interface for AD types.

Author
T. Albring
Version
8.5.0 "Harrier"

SU2 Project Website: https://su2code.github.io

The SU2 Project is maintained by the SU2 Foundation (http://su2foundation.org)

Copyright 2012-2026, SU2 Contributors (cf. AUTHORS.md)

SU2 is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

SU2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with SU2. If not, see http://www.gnu.org/licenses/.

Macro Definition Documentation

◆ SPRINTF

#define SPRINTF   SU2_TYPE::sprintf