G+Smo  25.01.0
Geometry + Simulation Modules
 
Loading...
Searching...
No Matches
gsVolume.h
Go to the documentation of this file.
1
14#pragma once
15
16namespace gismo
17{
18
27template<class T>
28class gsVolume : public gsGeometry<T>
29{
30
31public:
33 typedef memory::shared_ptr< gsVolume > Ptr;
34
36 typedef memory::unique_ptr< gsVolume > uPtr;
37
38 typedef T Scalar_t;
39public:
40
43
45 gsVolume() : gsGeometry<T>() { }
46
51 {
52 GISMO_ASSERT( this->m_coefs.size() >= 1,
53 "Coefficient matrix cannot be empty.\n");
54 // GISMO_ASSERT( coefs.cols() >= 2,
55 // "Surface must be embedded in dimension at least two.\n");
56 }
57
59
60// GISMO_UPTR_FUNCTION_PURE(gsVolume, clone)
61private: virtual gsVolume * clone_impl() const = 0;
62public: inline uPtr clone() const { return uPtr(clone_impl()); }
63
64 short_t domainDim() const { return 3; }
65
66}; // class gsVolume
67
68} // namespace gismo
69
70
71#ifndef GISMO_BUILD_LIB
72#include GISMO_HPP_HEADER(gsVolume.hpp)
73#endif
74
A basis represents a family of scalar basis functions defined over a common parameter domain.
Definition gsBasis.h:79
Abstract base class representing a geometry map.
Definition gsGeometry.h:93
gsMatrix< T > & coefs()
Definition gsGeometry.h:340
virtual const gsBasis< T > & basis() const =0
Returns a const reference to the basis of the geometry.
gsMatrix< T > m_coefs
Coefficient matrix of size coefsSize() x geoDim()
Definition gsGeometry.h:629
A matrix with arbitrary coefficient type and fixed or dynamic size.
Definition gsMatrix.h:41
Provides declaration of Volume abstract interface.
Definition gsVolume.h:29
memory::unique_ptr< gsVolume > uPtr
Unique pointer for gsVolume.
Definition gsVolume.h:36
short_t domainDim() const
Dimension d of the parameter domain (overriding gsFunction::domainDim()).
Definition gsVolume.h:64
memory::shared_ptr< gsVolume > Ptr
Shared pointer for gsVolume.
Definition gsVolume.h:33
gsVolume()
Default empty constructor.
Definition gsVolume.h:45
gsVolume(const gsBasis< T > &basis, gsMatrix< T > coefs)
Definition gsVolume.h:49
#define short_t
Definition gsConfig.h:35
#define GISMO_ASSERT(cond, message)
Definition gsDebug.h:89
The G+Smo namespace, containing all definitions for the library.
S give(S &x)
Definition gsMemory.h:266