IgANet
IGAnets - Isogeometric Analysis Networks
Loading...
Searching...
No Matches
iganet::detail Namespace Reference

Classes

class  FunctionSpace
 Function space. More...
 
class  FunctionSpace< std::tuple< Splines... >, std::tuple< Boundaries... > >
 Tensor-product function space. More...
 
struct  FunctionSpace_trait
 Forward declaration. More...
 
struct  FunctionSpace_trait< FunctionSpace< Spline, Boundary > >
 Function space. More...
 
struct  FunctionSpace_trait< Spline >
 Function space with default boundary. More...
 
struct  FunctionSpace_trait< Spline, Boundary >
 Function space with non-default boundary. More...
 
struct  FunctionSpace_trait< std::tuple< FunctionSpace< Splines, Boundaries >... > >
 Tensor-product function. More...
 
struct  FunctionSpace_trait< std::tuple< Splines... > >
 Tensor-product function space with default boundary. More...
 
struct  FunctionSpace_trait< std::tuple< Splines... >, std::tuple< Boundaries... > >
 Tensor-product function space with non-default boundary. More...
 
class  FunctionSpaceType
 FunctionSpace base class. More...
 

Concepts

concept  HasFindKnotIndices
 
concept  HasFindCoeffIndices
 
concept  HasTemplatedFindKnotIndices
 
concept  HasTemplatedFindCoeffIndices
 
concept  HasAsTensor
 
concept  HasAsTensorSize
 
concept  HasFromTensor
 

Enumerations

enum class  SerializationFormat { xml , json }
 

Functions

template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim>
std::shared_ptr< iganet::BSplinePatch< real_t, GeoDim, ParDim > > createUniformBSplineFromSerialized (const std::array< iganet::short_t, ParDim > &degrees, const std::string &serialized, SerializationFormat format, int id, const std::string &label, int index, iganet::Options< real_t > options)
 Loads a non-uniform B-spline and converts it to a uniform B-spline inside one JIT-generated dynamic library.
 
template<typename... Splines>
std::ostream & operator<< (std::ostream &os, const FunctionSpace< Splines... > &obj)
 Print (as string) a function space object.
 
template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim>
BSplineMetadata< ParDim > parseBSplineMetadata (const nlohmann::json &json)
 Parses B-spline metadata from a JSON object.
 
template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim>
BSplineMetadata< ParDim > parseBSplineMetadata (const pugi::xml_node &root, int id, const std::string &label, int index)
 Parses B-spline metadata from an XML node.
 

Class Documentation

◆ iganet::detail::BSplineMetadata

struct iganet::detail::BSplineMetadata
template<iganet::short_t ParDim>
struct iganet::detail::BSplineMetadata< ParDim >
Class Members
array< short_t, ParDim > degrees {}
array< int64_t, ParDim > ncoeffs {}

◆ iganet::detail::FunctionSpace_trait

struct iganet::detail::FunctionSpace_trait
template<typename... Args>
struct iganet::detail::FunctionSpace_trait< Args >

Forward declaration.

◆ iganet::detail::FunctionSpace_trait< FunctionSpace< Spline, Boundary > >

struct iganet::detail::FunctionSpace_trait< FunctionSpace< Spline, Boundary > >
template<typename Spline, typename Boundary>
struct iganet::detail::FunctionSpace_trait< FunctionSpace< Spline, Boundary > >

Function space.

This type trait strips away a doubly wrapped function space.

Class Members
typedef type type

◆ iganet::detail::FunctionSpace_trait< Spline >

struct iganet::detail::FunctionSpace_trait< Spline >
template<typename Spline>
struct iganet::detail::FunctionSpace_trait< Spline >

Function space with default boundary.

Class Members
typedef FunctionSpace< Spline, Boundary< Spline > > type

◆ iganet::detail::FunctionSpace_trait< Spline, Boundary >

struct iganet::detail::FunctionSpace_trait< Spline, Boundary >
template<typename Spline, typename Boundary>
struct iganet::detail::FunctionSpace_trait< Spline, Boundary >

Function space with non-default boundary.

Class Members
typedef FunctionSpace< Spline, Boundary > type

◆ iganet::detail::FunctionSpace_trait< std::tuple< FunctionSpace< Splines, Boundaries >... > >

struct iganet::detail::FunctionSpace_trait< std::tuple< FunctionSpace< Splines, Boundaries >... > >
template<typename... Splines, typename... Boundaries>
struct iganet::detail::FunctionSpace_trait< std::tuple< FunctionSpace< Splines, Boundaries >... > >

Tensor-product function.

This type trait strips away doubly wrapped function spaces.

Class Members
typedef FunctionSpace_trait< tuple_cat_t< Splines... >, tuple_cat_t< Boundaries... > >::type type

◆ iganet::detail::FunctionSpace_trait< std::tuple< Splines... > >

struct iganet::detail::FunctionSpace_trait< std::tuple< Splines... > >
template<typename... Splines>
struct iganet::detail::FunctionSpace_trait< std::tuple< Splines... > >

Tensor-product function space with default boundary.

Class Members
typedef FunctionSpace< tuple_cat_t< Splines... >, tuple_cat_t< Boundary< Splines >... > > type

◆ iganet::detail::FunctionSpace_trait< std::tuple< Splines... >, std::tuple< Boundaries... > >

struct iganet::detail::FunctionSpace_trait< std::tuple< Splines... >, std::tuple< Boundaries... > >
template<typename... Splines, typename... Boundaries>
struct iganet::detail::FunctionSpace_trait< std::tuple< Splines... >, std::tuple< Boundaries... > >

Tensor-product function space with non-default boundary.

Class Members
typedef FunctionSpace< tuple_cat_t< Splines... >, tuple_cat_t< Boundaries... > > type

Enumeration Type Documentation

◆ SerializationFormat

Enumerator
xml 
json 

Function Documentation

◆ createUniformBSplineFromSerialized()

template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim>
std::shared_ptr< iganet::BSplinePatch< real_t, GeoDim, ParDim > > iganet::detail::createUniformBSplineFromSerialized ( const std::array< iganet::short_t, ParDim > &  degrees,
const std::string &  serialized,
SerializationFormat  format,
int  id,
const std::string &  label,
int  index,
iganet::Options< real_t >  options 
)

Loads a non-uniform B-spline and converts it to a uniform B-spline inside one JIT-generated dynamic library.

Template Parameters
real_tScalar type.
GeoDimGeometric dimension.
ParDimParametric dimension.
Parameters
degreesPolynomial degrees in each parametric direction.
serializedSerialized XML or JSON representation.
formatSerialization format.
idObject identifier used for XML input.
labelObject label used for XML input.
indexObject index used for XML input.
optionsConfiguration options.
Returns
The converted uniform B-spline patch.

◆ operator<<()

template<typename... Splines>
std::ostream & iganet::detail::operator<< ( std::ostream &  os,
const FunctionSpace< Splines... > &  obj 
)
inline

Print (as string) a function space object.

Template Parameters
SplinesTemplate parameter Splines.
Parameters
osOutput stream.
objObject to process.
Returns
Result of the operation.

◆ parseBSplineMetadata() [1/2]

template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim>
BSplineMetadata< ParDim > iganet::detail::parseBSplineMetadata ( const nlohmann::json &  json)

Parses B-spline metadata from a JSON object.

Template Parameters
real_tScalar type.
GeoDimGeometric dimension.
ParDimParametric dimension.
Parameters
jsonJSON object to parse.
Returns
Parsed degree and coefficient-count metadata.

◆ parseBSplineMetadata() [2/2]

template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim>
BSplineMetadata< ParDim > iganet::detail::parseBSplineMetadata ( const pugi::xml_node &  root,
int  id,
const std::string &  label,
int  index 
)

Parses B-spline metadata from an XML node.

Template Parameters
real_tScalar type.
GeoDimGeometric dimension.
ParDimParametric dimension.
Parameters
rootRoot XML node.
idObject identifier.
labelObject label.
indexObject index.
Returns
Parsed degree and coefficient-count metadata.

Provides the if operation.