![]() |
IgANet
IGAnets - Isogeometric Analysis Networks
|
Multivariate B-splines. More...
#include <algorithm>#include <exception>#include <filesystem>#include <functional>#include <regex>#include <string_view>#include <iganet/core/core.hpp>#include <iganet/core/options.hpp>#include <iganet/splines/patch.hpp>#include <iganet/utils/blocktensor.hpp>#include <iganet/utils/container.hpp>#include <iganet/utils/dlloader.hpp>#include <iganet/utils/fqn.hpp>#include <iganet/utils/index_sequence.hpp>#include <iganet/utils/integer_pow.hpp>#include <iganet/utils/jit.hpp>#include <iganet/utils/linalg.hpp>#include <iganet/utils/serialize.hpp>#include <iganet/utils/tensorarray.hpp>#include <iganet/utils/vslice.hpp>Go to the source code of this file.
Classes | |
| class | iganet::BSplineCommon< BSplineCore > |
| B-spline (common high-level functionality). More... | |
| struct | iganet::detail::BSplineMetadata< ParDim > |
| class | iganet::NonUniformBSplineCore< real_t, GeoDim, Degrees > |
| Tensor-product non-uniform B-spline (core functionality). More... | |
| class | iganet::NonUniformSplineCore_ |
| NonUniformSplineCore base class. More... | |
| class | iganet::Spline_ |
| Spline base class. More... | |
| class | iganet::SplineCore_ |
| SplineCore base class. More... | |
| class | iganet::UniformBSplineCore< real_t, GeoDim, Degrees > |
| Tensor-product uniform B-spline (core functionality). More... | |
| class | iganet::UniformSplineCore_ |
| UniformSplineCore base class. More... | |
Namespaces | |
| namespace | iganet |
| namespace | iganet::detail |
Concepts | |
| concept | iganet::detail::HasFindKnotIndices |
| concept | iganet::detail::HasFindCoeffIndices |
| concept | iganet::SplineCoreType |
| Concept to identify template parameters that are derived from iganet::SplineCore_. | |
| concept | iganet::UniformSplineCoreType |
| Concept to identify template parameters that are derived from iganet::UniformSplineCore_. | |
| concept | iganet::NonUniformSplineCoreType |
| Concept to identify template parameters that are derived from iganet::NonUniformSplineCore_. | |
| concept | iganet::SplineType |
| Concept to identify template parameters that are derived from iganet::Spline_. | |
| concept | iganet::UniformSplineType |
| Concept to identify template parameters that are derived from iganet::Spline_ and iganet::UniformSplineCore_. | |
| concept | iganet::NonUniformSplineType |
| Concept to identify template parameters that are derived from iganet::Spline_ and iganet::NonUniformSplineCore_. | |
Macros | |
| #define | GENERATE_EXPR_SEQ (curl)(div)(grad)(hess)(jac)(lapl) |
| Sequence of expression (parametric coordinates). | |
| #define | GENERATE_IEXPR_SEQ (icurl)(idiv)(igrad)(ihess)(ijac)(ilapl) |
| Sequence of expression (physical coordinates). | |
Typedefs | |
| template<typename real_t , short_t GeoDim, short_t... Degrees> | |
| using | iganet::NonUniformBSpline = BSplineCommon< NonUniformBSplineCore< real_t, GeoDim, Degrees... > > |
Provides the operator<< operation. | |
| template<typename real_t , short_t GeoDim, short_t... Degrees> | |
| using | iganet::UniformBSpline = BSplineCommon< UniformBSplineCore< real_t, GeoDim, Degrees... > > |
| Tensor-product uniform B-spline. | |
Enumerations | |
| enum class | iganet::deriv : short_t { iganet::func = 0 , iganet::dx = 1 , iganet::dy = 10 , iganet::dz = 100 , iganet::dt = 1000 } |
| Enumerator for specifying the derivative of B-spline evaluation. More... | |
| enum class | iganet::init : short_t { iganet::none = 0 , iganet::zeros = 1 , iganet::ones = 2 , iganet::linear , iganet::random = 4 , iganet::greville = 5 , iganet::linspace = 6 } |
| Enumerator for specifying the initialization of B-spline coefficients. More... | |
| enum class | iganet::detail::SerializationFormat { iganet::detail::xml , iganet::detail::json } |
Functions | |
| template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim> | |
| std::shared_ptr< iganet::BSplinePatch< real_t, GeoDim, ParDim > > | iganet::createNonUniformBSpline (const nlohmann::json &json, iganet::Options< real_t > options=iganet::Options< real_t >{}) |
| Creates a tensor-product non-uniform B-spline from a JSON object. | |
| template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim> | |
| std::shared_ptr< iganet::BSplinePatch< real_t, GeoDim, ParDim > > | iganet::createNonUniformBSpline (const pugi::xml_document &doc, int id=0, const std::string &label="", int index=-1, iganet::Options< real_t > options=iganet::Options< real_t >{}) |
| Creates a tensor-product non-uniform B-spline from an XML document. | |
| template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim> | |
| std::shared_ptr< iganet::BSplinePatch< real_t, GeoDim, ParDim > > | iganet::createNonUniformBSpline (const pugi::xml_node &root, int id=0, const std::string &label="", int index=-1, iganet::Options< real_t > options=iganet::Options< real_t >{}) |
| Creates a tensor-product non-uniform B-spline from an XML node. | |
| template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim> | |
| std::shared_ptr< iganet::BSplinePatch< real_t, GeoDim, ParDim > > | iganet::createNonUniformBSpline (const std::array< iganet::short_t, ParDim > °rees, const std::array< int64_t, ParDim > &ncoeffs, enum iganet::init init=iganet::init::greville, iganet::Options< real_t > options=iganet::Options< real_t >{}) |
| Create tensor-product non-uniform B-spline. | |
| template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim> | |
| std::shared_ptr< iganet::BSplinePatch< real_t, GeoDim, ParDim > > | iganet::createUniformBSpline (const nlohmann::json &json, iganet::Options< real_t > options=iganet::Options< real_t >{}) |
| Creates a tensor-product uniform B-spline from a JSON object. | |
| template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim> | |
| std::shared_ptr< iganet::BSplinePatch< real_t, GeoDim, ParDim > > | iganet::createUniformBSpline (const pugi::xml_document &doc, int id=0, const std::string &label="", int index=-1, iganet::Options< real_t > options=iganet::Options< real_t >{}) |
| Creates a tensor-product uniform B-spline from an XML document. | |
| template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim> | |
| std::shared_ptr< iganet::BSplinePatch< real_t, GeoDim, ParDim > > | iganet::createUniformBSpline (const pugi::xml_node &root, int id=0, const std::string &label="", int index=-1, iganet::Options< real_t > options=iganet::Options< real_t >{}) |
| Creates a tensor-product uniform B-spline from an XML node. | |
| template<typename real_t , iganet::short_t GeoDim, iganet::short_t ParDim> | |
| std::shared_ptr< iganet::BSplinePatch< real_t, GeoDim, ParDim > > | iganet::createUniformBSpline (const std::array< iganet::short_t, ParDim > °rees, const std::array< int64_t, ParDim > &ncoeffs, enum iganet::init init=iganet::init::greville, iganet::Options< real_t > options=iganet::Options< real_t >{}) |
| Create tensor-product uniform B-spline. | |
| 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 > °rees, 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. | |
| constexpr auto | iganet::operator+ (deriv lhs, deriv rhs) |
| Adds two enumerators for specifying the derivative of B-spline evaluation. | |
| template<typename real_t , short_t GeoDim, short_t... Degrees> | |
| std::ostream & | iganet::operator<< (std::ostream &os, const NonUniformBSpline< real_t, GeoDim, Degrees... > &obj) |
| Prints a NonUniformBSpline object. | |
| template<typename real_t , short_t GeoDim, short_t... Degrees> | |
| std::ostream & | iganet::operator<< (std::ostream &os, const UniformBSpline< real_t, GeoDim, Degrees... > &obj) |
| Prints a UniformBSpline object. | |
| template<typename real_t , short_t GeoDim, short_t... Degrees> | |
| torch::serialize::OutputArchive & | iganet::operator<< (torch::serialize::OutputArchive &archive, const UniformBSplineCore< real_t, GeoDim, Degrees... > &obj) |
| Serializes a B-spline object. | |
| template<typename real_t , short_t GeoDim, short_t... Degrees> | |
| torch::serialize::InputArchive & | iganet::operator>> (torch::serialize::InputArchive &archive, UniformBSplineCore< real_t, GeoDim, Degrees... > &obj) |
| Deserializes a B-spline object. | |
| constexpr auto | iganet::operator^ (deriv lhs, short_t rhs) |
| Raises an enumerator for specifying the derivative of B-spline evaluation to a higher exponent. | |
| 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<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. | |
Multivariate B-splines.
Abstract patch function base class.
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
| struct iganet::detail::BSplineMetadata |
| Class Members | ||
|---|---|---|
| array< short_t, ParDim > | degrees {} | |
| array< int64_t, ParDim > | ncoeffs {} | |
| #define GENERATE_EXPR_SEQ (curl)(div)(grad)(hess)(jac)(lapl) |
Sequence of expression (parametric coordinates).
For each item in this sequence corresponding expressions will be generated for function spaces, boundary spaces, etc.
| #define GENERATE_IEXPR_SEQ (icurl)(idiv)(igrad)(ihess)(ijac)(ilapl) |
Sequence of expression (physical coordinates).
For each item in this sequence corresponding expressions will be generated for function spaces, boundary spaces, etc.