ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ShocColumnWorkspace Class Reference

#include <ERF_ShocColumnData.H>

Collaboration diagram for ShocColumnWorkspace:

Public Member Functions

void ensure_capacity (const ShocColumnLayout &layout, amrex::Arena *arena=amrex::The_Async_Arena(), shoc::InitRunOn init_run_on=shoc::default_init_run_on())
 

Public Attributes

ShocColumnData col
 

Private Attributes

ShocColumnLayout m_capacity_layout {}
 
amrex::Arena * m_arena = nullptr
 
bool m_defined = false
 

Member Function Documentation

◆ ensure_capacity()

void ShocColumnWorkspace::ensure_capacity ( const ShocColumnLayout layout,
amrex::Arena *  arena = amrex::The_Async_Arena(),
shoc::InitRunOn  init_run_on = shoc::default_init_run_on() 
)
inline
110  {
111  if (!m_defined || arena != m_arena || !shoc_layout_fits(layout, m_capacity_layout)) {
112  m_capacity_layout = layout;
113  define_shoc_column_data(col, m_capacity_layout, arena, init_run_on);
114  m_defined = true;
115  m_arena = arena;
116  } else {
117  col.layout = layout;
118  reset_shoc_column_data(col, init_run_on);
119  }
120  }
bool shoc_layout_fits(const ShocColumnLayout &active, const ShocColumnLayout &capacity)
Definition: ERF_ShocColumnData.H:93
void define_shoc_column_data(ShocColumnData &col, const ShocColumnLayout &layout, amrex::Arena *arena=amrex::The_Async_Arena(), shoc::InitRunOn init_run_on=shoc::default_init_run_on())
Definition: ERF_ShocColumnData.H:54
void reset_shoc_column_data(ShocColumnData &col, shoc::InitRunOn init_run_on=shoc::default_init_run_on())
Definition: ERF_ShocColumnData.H:45
bool m_defined
Definition: ERF_ShocColumnData.H:125
ShocColumnData col
Definition: ERF_ShocColumnData.H:105
amrex::Arena * m_arena
Definition: ERF_ShocColumnData.H:124
ShocColumnLayout m_capacity_layout
Definition: ERF_ShocColumnData.H:123
ShocColumnLayout layout
Definition: ERF_ShocTypes.H:205

Referenced by ShocDriver::advance().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ col

ShocColumnData ShocColumnWorkspace::col

◆ m_arena

amrex::Arena* ShocColumnWorkspace::m_arena = nullptr
private

Referenced by ensure_capacity().

◆ m_capacity_layout

ShocColumnLayout ShocColumnWorkspace::m_capacity_layout {}
private

Referenced by ensure_capacity().

◆ m_defined

bool ShocColumnWorkspace::m_defined = false
private

Referenced by ensure_capacity().


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