OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
olb::util::TimeIntegratorsArray< T, numComponents, P > Class Template Reference

Helper class that manages an array of time integrators. More...

#include <benchmarkUtil.h>

+ Collaboration diagram for olb::util::TimeIntegratorsArray< T, numComponents, P >:

Public Member Functions

 TimeIntegratorsArray (T lowerBound, T upperBound, T dt)
 
void takeValues (int iT, std::array< T, numComponents > values)
 Values can be passed in {val1, val2, ...} notation.
 
void reset (T lowerBound, T upperBound, T dt)
 
std::array< T, numComponents > getResult ()
 

Protected Attributes

std::array< std::unique_ptr< TimeIntegrator< T, P > >, numComponents > integrators
 

Detailed Description

template<typename T, int numComponents, int P = 1>
class olb::util::TimeIntegratorsArray< T, numComponents, P >

Helper class that manages an array of time integrators.

Definition at line 328 of file benchmarkUtil.h.

Constructor & Destructor Documentation

◆ TimeIntegratorsArray()

template<typename T , int numComponents, int P = 1>
olb::util::TimeIntegratorsArray< T, numComponents, P >::TimeIntegratorsArray ( T lowerBound,
T upperBound,
T dt )
inline

Definition at line 334 of file benchmarkUtil.h.

334 {
335 for (int i = 0; i < numComponents; ++i) {
336 integrators[i] = std::make_unique<TimeIntegrator<T,P>>(lowerBound,upperBound,dt);
337 }
338 }
std::array< std::unique_ptr< TimeIntegrator< T, P > >, numComponents > integrators

References olb::util::TimeIntegratorsArray< T, numComponents, P >::integrators.

Member Function Documentation

◆ getResult()

template<typename T , int numComponents, int P = 1>
std::array< T, numComponents > olb::util::TimeIntegratorsArray< T, numComponents, P >::getResult ( )
inline

Definition at line 353 of file benchmarkUtil.h.

354 {
355 std::array<T,numComponents> results;
356 std::transform(integrators.begin(),integrators.end(),results.begin(),
357 [](auto& integrator){
358 return integrator->getResult();
359 });
360 return results;
361 }

References olb::util::TimeIntegratorsArray< T, numComponents, P >::integrators.

◆ reset()

template<typename T , int numComponents, int P = 1>
void olb::util::TimeIntegratorsArray< T, numComponents, P >::reset ( T lowerBound,
T upperBound,
T dt )
inline

Definition at line 347 of file benchmarkUtil.h.

347 {
348 for (auto& integrator : integrators) {
349 integrator->reset(lowerBound,upperBound,dt);
350 }
351 }

References olb::util::TimeIntegratorsArray< T, numComponents, P >::integrators.

◆ takeValues()

template<typename T , int numComponents, int P = 1>
void olb::util::TimeIntegratorsArray< T, numComponents, P >::takeValues ( int iT,
std::array< T, numComponents > values )
inline

Values can be passed in {val1, val2, ...} notation.

Definition at line 341 of file benchmarkUtil.h.

341 {
342 for (int i = 0; i < numComponents; ++i) {
343 integrators[i]->takeValue(iT,values[i]);
344 }
345 }

References olb::util::TimeIntegratorsArray< T, numComponents, P >::integrators.

Member Data Documentation

◆ integrators

template<typename T , int numComponents, int P = 1>
std::array<std::unique_ptr<TimeIntegrator<T,P> >,numComponents> olb::util::TimeIntegratorsArray< T, numComponents, P >::integrators
protected

Definition at line 331 of file benchmarkUtil.h.


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