Proto  3.2
Public Types | Public Member Functions | Static Public Member Functions | List of all members
Proto::LevelSolver< OpType, T, MEM > Class Template Referenceabstract

Level Solver. More...

#include <Proto_LevelSolver.H>

Public Types

typedef OpType< T, MEM > BOP
 
typedef LevelOp< OpType, T, PeriodicBC, MEM > LOP
 
typedef LevelBoxData< T, BOP::numState(), MEM, PR_CELLLevelStateData
 
typedef LevelBoxData< T, BOP::numAux(), MEM, PR_CELLLevelAuxData
 

Public Member Functions

virtual double solve (LevelStateData &a_state, LevelStateData &a_forcing, LevelAuxData &a_aux, int a_maxIter, double a_tolerance)=0
 
virtual double solve (LevelStateData &a_state, LevelStateData &a_forcing, int a_maxIter, double a_tolerance)=0
 

Static Public Member Functions

static constexpr unsigned int numState ()
 
static constexpr unsigned int numAux ()
 

Detailed Description

template<template< typename, MemType > class OpType, typename T, MemType MEM = MEMTYPE_DEFAULT>
class Proto::LevelSolver< OpType, T, MEM >

Level Solver.

Level Solver is an interface for building a solver to invert a LevelOp. In particular, we would like to solve the equation L(phi) = G where L is defined by a LevelOp, G is an external forcing defined on a level, and phi is the solution, also on a level.

TODO: specifically, this is an interface for iterative solvers.

Member Typedef Documentation

◆ BOP

template<template< typename, MemType > class OpType, typename T , MemType MEM = MEMTYPE_DEFAULT>
typedef OpType<T, MEM> Proto::LevelSolver< OpType, T, MEM >::BOP

◆ LOP

template<template< typename, MemType > class OpType, typename T , MemType MEM = MEMTYPE_DEFAULT>
typedef LevelOp<OpType, T, PeriodicBC, MEM> Proto::LevelSolver< OpType, T, MEM >::LOP

◆ LevelStateData

template<template< typename, MemType > class OpType, typename T , MemType MEM = MEMTYPE_DEFAULT>
typedef LevelBoxData<T, BOP::numState(), MEM, PR_CELL> Proto::LevelSolver< OpType, T, MEM >::LevelStateData

◆ LevelAuxData

template<template< typename, MemType > class OpType, typename T , MemType MEM = MEMTYPE_DEFAULT>
typedef LevelBoxData<T, BOP::numAux(), MEM, PR_CELL> Proto::LevelSolver< OpType, T, MEM >::LevelAuxData

Member Function Documentation

◆ numState()

template<template< typename, MemType > class OpType, typename T , MemType MEM = MEMTYPE_DEFAULT>
static constexpr unsigned int Proto::LevelSolver< OpType, T, MEM >::numState ( )
inlinestatic

◆ numAux()

template<template< typename, MemType > class OpType, typename T , MemType MEM = MEMTYPE_DEFAULT>
static constexpr unsigned int Proto::LevelSolver< OpType, T, MEM >::numAux ( )
inlinestatic

◆ solve() [1/2]

template<template< typename, MemType > class OpType, typename T , MemType MEM = MEMTYPE_DEFAULT>
virtual double Proto::LevelSolver< OpType, T, MEM >::solve ( LevelStateData a_state,
LevelStateData a_forcing,
LevelAuxData a_aux,
int  a_maxIter,
double  a_tolerance 
)
inlinepure virtual

◆ solve() [2/2]

template<template< typename, MemType > class OpType, typename T , MemType MEM = MEMTYPE_DEFAULT>
virtual double Proto::LevelSolver< OpType, T, MEM >::solve ( LevelStateData a_state,
LevelStateData a_forcing,
int  a_maxIter,
double  a_tolerance 
)
inlinepure virtual

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