31 template<
short_t d,
class T>
36 typedef memory::shared_ptr< gsMPBESHSplineBasis >
Ptr;
39 typedef memory::unique_ptr< gsMPBESHSplineBasis >
uPtr;
47 typedef typename std::vector<BasisType *> BasisContainer;
48 typedef typename std::vector<gsBasis<T>* >::const_iterator ConstBasisIter;
63 using Base::maxDegree;
65 using Base::_getPatch;
66 using Base::_getPatchIndex;
131 virtual bool isLocallyConnected(indexType i,indexType j)
const;
152 void refineElements(
const index_t patch, std::vector<index_t>
const & boxes,
bool updateBasis =
true);
171 bool _innerBoxesAreSuitable(
const index_t patch,
172 std::vector<index_t>& boxes);
174 bool _boxesMatchNeighbours(
const index_t patch,
175 std::vector<index_t>& boxes, std::vector<index_t>& checkPatches);
177 void _addBoundaryBox(
const index_t patch,
const boxSide s,
const index_t start,
const index_t end,
const unsigned level, std::vector<index_t> & boxes, std::vector<bool> & sideToCheck);
179 void _addFunBox(
const index_t patch,
const unsigned uMin,
const unsigned vMin,
const unsigned uMax,
const unsigned vMax,
const unsigned level, std::vector<index_t> & boxes);
181 void _addBox(
const index_t patch,
const unsigned uMin,
const unsigned vMin,
const unsigned uMax,
const unsigned vMax,
const unsigned level, std::vector<index_t> & boxes);
188 void _endpointsOfActiveBoundaryFunctions(
patchSide const & ps,
bool orient,std::vector<T>& endpoints)
const;
Provides definition of HTensorBasis abstract interface.
Provides declaration of Basis abstract interface.
gsHTensorBasis< d, T > & basis(size_t i)
Clone function. Used to make a copy of a derived basis.
Definition: gsMPBESHSplineBasis.h:123
void repairPatches(std::vector< gsMatrix< T > * > &coefs, index_t startFromPatch=-1)
Definition: gsMPBESHSplineBasis.hpp:331
#define GISMO_NO_IMPLEMENTATION
Definition: gsDebug.h:129
Provides declaration of Basis abstract interface.
Struct which represents a certain side of a patch.
Definition: gsBoundary.h:231
void _setMapping()
create a new mapping of the local basisfunctions
Definition: gsMPBESHSplineBasis.hpp:170
short_t m_incrSmoothnessDegree
smoothness degree that is tried to achive over patch interfaces
Definition: gsMPBESBasis.h:375
virtual void refineWithExtension(const index_t patch, gsMatrix< T > const &boxes, index_t refExt=0, bool updateBasis=true)
Refine the are defined by boxes on patch k with extension refExt.
Definition: gsMPBESHSplineBasis.hpp:317
#define index_t
Definition: gsConfig.h:32
A univariate Lagrange basis.
Definition: gsMPBESHSplineBasis.h:32
gsMPBESHSplineBasis()
Default empty constructor.
Definition: gsMPBESHSplineBasis.h:77
Struct which represents a certain corner of a patch.
Definition: gsBoundary.h:392
std::vector< std::pair< patchCorner, bool > > m_vertices
vector storing all the inner vertices, with a flag if it is an Extraordinary vertex or an ordinary ve...
Definition: gsMPBESBasis.h:381
memory::shared_ptr< gsMPBESHSplineBasis > Ptr
Shared pointer for gsMPBESHSplineBasis.
Definition: gsMPBESHSplineBasis.h:36
Class representing a (scalar) hierarchical tensor basis of functions .
Definition: gsHTensorBasis.h:74
Holds a set of patch-wise bases and their topology information.
Definition: gsMultiBasis.h:36
virtual void repairPatches(std::vector< gsMatrix< T > * > &coefs, index_t startFromPatch=-1)=0
void updateTopol()
updates the mapping of this basis (f.e. after a knot insertion)
Definition: gsMPBESBasis.h:101
bool _checkTopologyWithBases() const
Checks the gsMappedBasis for consistency.
Definition: gsMPBESHSplineBasis.h:108
Purely abstract class gsMappedBasis, which gives means of combining basis functions to new...
Definition: gsMPBESBasis.h:46
Container class for a set of geometry patches and their topology, that is, the interface connections ...
Definition: gsMultiPatch.h:33
Struct which represents a certain side of a box.
Definition: gsBoundary.h:84
memory::unique_ptr< gsMPBESHSplineBasis > uPtr
Unique pointer for gsMPBESHSplineBasis.
Definition: gsMPBESHSplineBasis.h:39
T findParameter(patchSide const &ps, patchCorner const &pc, unsigned nrBasisFuncs) const
Definition: gsMPBESHSplineBasis.hpp:586
void refineElements(const index_t patch, std::vector< index_t > const &boxes, bool updateBasis=true)
Definition: gsMPBESHSplineBasis.hpp:231
#define GISMO_UNUSED(x)
Definition: gsDebug.h:112
void numActive_into(const index_t patch, const gsMatrix< T > &u, gsVector< index_t > &result) const
Returns the number of active (nonzero) basis functions at points u in result.
Definition: gsMPBESHSplineBasis.h:139
unsigned basisFunctionsOnSide(const patchSide &ps) const
Returns the amount of basis functions on a given side of a given patch.
Definition: gsMPBESHSplineBasis.hpp:180
std::vector< distances > m_distances
vector of distances objects, that store C^0 distances from special vertices on the edges ...
Definition: gsMPBESBasis.h:383
void refine_withCoefs(gsMatrix< T > &localCoef, const index_t patch, gsMatrix< T > const &boxes, bool updateBasis=true)
Definition: gsMPBESHSplineBasis.hpp:245
void _initVertices()
initializes the m_vertices field
Definition: gsMPBESBasis.hpp:298
Defines a topological arrangement of a collection of "boxes" (e.g., parameter domains that map to phy...
Definition: gsBoxTopology.h:38
unsigned m_minDist
minimal C^0 distance from special (extraordinary) vertices, specified in basisfunctions ...
Definition: gsMPBESBasis.h:377
static const index_t Dim
Dimension of the parameter domain.
Definition: gsMPBESHSplineBasis.h:42
A basis represents a family of scalar basis functions defined over a common parameter domain...
Definition: gsBasis.h:78
void refineElements_withCoefs(gsMatrix< T > &localCoef, const index_t patch, std::vector< index_t > const &boxes, bool updateBasis=true)
Definition: gsMPBESHSplineBasis.hpp:282
void _setDistanceOfAllVertices()
initializes the m_distances field
Definition: gsMPBESBasis.hpp:313
void refine(const index_t patch, gsMatrix< T > const &boxes, bool updateBasis=true)
Definition: gsMPBESHSplineBasis.hpp:217