ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
UnionCIF< F1, F2 > Class Template Reference

#include <ERF_EBIF.H>

Collaboration diagram for UnionCIF< F1, F2 >:

Public Member Functions

 UnionCIF (const F1 &f1, const F2 &f2)
 
 ~UnionCIF ()=default
 
 UnionCIF (const UnionCIF &rhs)=default
 
 UnionCIF (UnionCIF &&rhs) noexcept=default
 
UnionCIFoperator= (const UnionCIF &rhs)=default
 
UnionCIFoperator= (UnionCIF &&rhs) noexcept=default
 
bool is_active () const
 
amrex::Real operator() (const amrex::RealArray &p) const
 

Private Attributes

F1 m_f1
 
F2 m_f2
 
bool f1_active
 
bool f2_active
 

Constructor & Destructor Documentation

◆ UnionCIF() [1/3]

template<class F1 , class F2 >
UnionCIF< F1, F2 >::UnionCIF ( const F1 &  f1,
const F2 &  f2 
)
inline
122  : m_f1(f1)
123  , m_f2(f2)
124  , f1_active(f1.is_acive())
125  , f2_active(f2.is_active())
126  {
127  AMREX_ALWAYS_ASSERT_WITH_MESSAGE(f1.is_active() || f2.is_active(),
128  "You must specify at least one active implicit function.");
129  }
F2 m_f2
Definition: ERF_EBIF.H:157
bool f1_active
Definition: ERF_EBIF.H:158
F1 m_f1
Definition: ERF_EBIF.H:156
bool f2_active
Definition: ERF_EBIF.H:159

◆ ~UnionCIF()

template<class F1 , class F2 >
UnionCIF< F1, F2 >::~UnionCIF ( )
default

◆ UnionCIF() [2/3]

template<class F1 , class F2 >
UnionCIF< F1, F2 >::UnionCIF ( const UnionCIF< F1, F2 > &  rhs)
default

◆ UnionCIF() [3/3]

template<class F1 , class F2 >
UnionCIF< F1, F2 >::UnionCIF ( UnionCIF< F1, F2 > &&  rhs)
defaultnoexcept

Member Function Documentation

◆ is_active()

template<class F1 , class F2 >
bool UnionCIF< F1, F2 >::is_active ( ) const
inline
140  {
141  return true;
142  }

◆ operator()()

template<class F1 , class F2 >
amrex::Real UnionCIF< F1, F2 >::operator() ( const amrex::RealArray &  p) const
inline
145  {
146 
147  if(!f1_active)
148  return m_f2(p);
149  if(!f2_active)
150  return m_f1(p);
151 
152  return std::max(m_f1(p), m_f2(p));
153  }

◆ operator=() [1/2]

template<class F1 , class F2 >
UnionCIF& UnionCIF< F1, F2 >::operator= ( const UnionCIF< F1, F2 > &  rhs)
default

◆ operator=() [2/2]

template<class F1 , class F2 >
UnionCIF& UnionCIF< F1, F2 >::operator= ( UnionCIF< F1, F2 > &&  rhs)
defaultnoexcept

Member Data Documentation

◆ f1_active

template<class F1 , class F2 >
bool UnionCIF< F1, F2 >::f1_active
private

◆ f2_active

template<class F1 , class F2 >
bool UnionCIF< F1, F2 >::f2_active
private

◆ m_f1

template<class F1 , class F2 >
F1 UnionCIF< F1, F2 >::m_f1
private

◆ m_f2

template<class F1 , class F2 >
F2 UnionCIF< F1, F2 >::m_f2
private

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