KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
Classes | Namespaces | Macros | Functions
proxies.h File Reference
#include "includes/global_variables.h"
#include "includes/kratos_export_api.h"
#include "includes/node.h"
#include "includes/element.h"
#include "includes/condition.h"
#include "includes/model_part.h"
#include "utilities/variable_utils.h"
#include "utilities/model_part_utils.h"
#include <type_traits>
#include <optional>
Include dependency graph for proxies.h:

Go to the source code of this file.

Classes

class  Kratos::EntityProxy< TLocation, TMutable >
 Wrapper class providing a uniform interface for historical/non-historical Node, Element, and Condition. More...
 
class  Kratos::ContainerProxy< TEntityProxy >
 A view with a uniform interface for ModelPart::NodesContainerType, ModelPart::ElementsContainerType, or ModelPart::ConditionsContainerType. More...
 

Namespaces

 Kratos
 REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
 

Macros

#define KRATOS_DEFINE_ENTITY_PROXY_FACTORY(TLocation, TEntity)
 
#define KRATOS_DEFINE_CONTAINER_PROXY_FACTORY(TLocation)
 

Functions

template<Globals::DataLocation TLocation, class TEntity >
auto Kratos::MakeProxy (const TEntity &rEntity)
 Invalid template base to be specialized for valid template parameters. More...
 
template<Globals::DataLocation TLocation, class TEntity >
auto Kratos::MakeProxy (TEntity &rEntity)
 Invalid template base to be specialized for valid template parameters. More...
 
template<>
auto Kratos::MakeProxy< Globals::DataLocation::ProcessInfo, ModelPart > (const ModelPart &rModelPart)
 Convenience function for constructing a mutable ProcessInfo proxy from a ModelPart. More...
 
template<>
auto Kratos::MakeProxy< Globals::DataLocation::ProcessInfo, ModelPart > (ModelPart &rModelPart)
 Convenience function for constructing an immutable ProcessInfo proxy from a ModelPart. More...
 

Macro Definition Documentation

◆ KRATOS_DEFINE_CONTAINER_PROXY_FACTORY

#define KRATOS_DEFINE_CONTAINER_PROXY_FACTORY (   TLocation)
Value:
\
template <> \
inline auto MakeProxy<TLocation,ModelPart>(const ModelPart& rModelPart) \
{ \
const auto& r_container = ModelPartUtils::GetContainer<TLocation>(rModelPart); \
return ContainerProxy<EntityProxy<TLocation,false>>(r_container.begin(), \
r_container.end()); \
} \ \
template <> \
inline auto MakeProxy<TLocation,ModelPart>(ModelPart& rModelPart) \
{ \
auto& r_container = ModelPartUtils::GetContainer<TLocation>(rModelPart); \
return ContainerProxy<EntityProxy<TLocation,true>>(r_container.begin(), \
r_container.end()); \
}
Kratos::ModelPart ModelPart
Definition: kratos_wrapper.h:31

◆ KRATOS_DEFINE_ENTITY_PROXY_FACTORY

#define KRATOS_DEFINE_ENTITY_PROXY_FACTORY (   TLocation,
  TEntity 
)
Value:
\
template <> \
inline auto MakeProxy<TLocation,TEntity>(const TEntity& rEntity) \
{return EntityProxy<TLocation,false>(rEntity);} \ \
template <> \
inline auto MakeProxy<TLocation,TEntity>(TEntity& rEntity) \
{return EntityProxy<TLocation,true>(rEntity);}