Multiscale Universal Interface  2.0
A Concurrent Framework for Coupling Heterogeneous Solvers
geometry.h File Reference

Base classes for creating geometries, primarily used by spatial interpolation methods and for defining smart MPI communication map. More...

#include <memory>
#include "../config.h"
#include "../storage/stream.h"
#include "../storage/stream_string.h"
Include dependency graph for geometry.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  mui::geometry::shape< CONFIG >
 
class  mui::geometry::any_shape< CONFIG >
 
class  mui::geometry::point< CONFIG >
 
class  mui::geometry::sphere< CONFIG >
 
class  mui::geometry::box< CONFIG >
 
class  mui::geometry::or_set< CONFIG >
 

Namespaces

 mui
 
 mui::geometry
 

Macros

#define CASE(LHS, RHS)
 

Enumerations

enum class  mui::geometry::shape_type : std::int8_t {
  mui::geometry::universe = 0 , mui::geometry::or_set , mui::geometry::point , mui::geometry::sphere ,
  mui::geometry::box
}
 

Functions

template<typename CONFIG >
std::unique_ptr< shape< CONFIG > > mui::geometry::shape_factory (shape_type)
 
template<typename CONFIG >
any_shape< CONFIG > mui::geometry::get_universe_set ()
 
template<typename CONFIG >
bool mui::geometry::collide (const shape< CONFIG > &lhs, const shape< CONFIG > &rhs)
 
template<typename CONFIG >
bool mui::geometry::collide (const any_shape< CONFIG > &lhs, const any_shape< CONFIG > &rhs)
 
template<typename CONFIG >
bool mui::geometry::collide (const any_shape< CONFIG > &lhs, const shape< CONFIG > &rhs)
 
template<typename CONFIG >
bool mui::geometry::collide (const shape< CONFIG > &lhs, const any_shape< CONFIG > &rhs)
 
template<typename CONFIG >
bool mui::geometry::collide (const point< CONFIG > &lhs, const point< CONFIG > &rhs)
 
template<typename CONFIG >
bool mui::geometry::collide (const point< CONFIG > &lhs, const sphere< CONFIG > &rhs)
 
template<typename CONFIG >
bool mui::geometry::collide (const point< CONFIG > &lhs, const box< CONFIG > &rhs)
 
template<typename CONFIG >
bool mui::geometry::collide (const sphere< CONFIG > &lhs, const sphere< CONFIG > &rhs)
 
template<typename CONFIG >
bool mui::geometry::collide (const sphere< CONFIG > &lhs, const box< CONFIG > &rhs)
 
template<typename CONFIG >
bool mui::geometry::collide (const box< CONFIG > &lhs, const box< CONFIG > &rhs)
 
template<typename CONFIG >
ostream & mui::geometry::operator<< (ostream &stream, const shape< CONFIG > &obj)
 
template<typename CONFIG >
istream & mui::geometry::operator>> (istream &stream, shape< CONFIG > &obj)
 
template<typename CONFIG >
or_set< CONFIG > mui::geometry::operator| (any_shape< CONFIG > lhs, any_shape< CONFIG > rhs)
 

Detailed Description

Base classes for creating geometries, primarily used by spatial interpolation methods and for defining smart MPI communication map.

Author
S. Kudo
Date
12 March 2014

Macro Definition Documentation

◆ CASE

#define CASE (   LHS,
  RHS 
)
Value:
case shape_type::RHS : \
return collide(static_cast<const LHS<CONFIG>&>(lhs), static_cast<const RHS<CONFIG>&>(rhs))
bool collide(const box< CONFIG > &lhs, const box< CONFIG > &rhs)
Definition: geometry.h:372