16 #ifndef dealii_composition_manifold_h 17 #define dealii_composition_manifold_h 71 int intermediate_dim = dim,
86 virtual std::unique_ptr<Manifold<dim, spacedim>>
87 clone()
const override;
137 int intermediate_dim,
150 ExcMessage(
"The second manifold cannot be periodic."));
157 int intermediate_dim,
160 std::unique_ptr<Manifold<dim, spacedim>>
164 return std_cxx14::make_unique<
173 int intermediate_dim,
188 int intermediate_dim,
203 int intermediate_dim,
218 for (
unsigned int d = 0;
d < spacedim; ++
d)
219 for (
unsigned int c = 0; c < chartdim; ++c)
220 for (
unsigned int s = 0; s < intermediate_dim; ++s)
221 DF_DG[
d][c] += DG[
d][s] * DF[s][c];
virtual std::unique_ptr< Manifold< dim, spacedim > > clone() const override
virtual Point< chartdim > pull_back(const Point< spacedim > &space_point) const
CompositionManifold(const ChartManifold< dim1, intermediate_dim, chartdim > &F, const ChartManifold< dim2, spacedim, intermediate_dim > &G)
SmartPointer< const ChartManifold< dim1, intermediate_dim, chartdim >, CompositionManifold< dim, spacedim, chartdim, dim1, dim2, intermediate_dim > > F
virtual DerivativeForm< 1, chartdim, spacedim > push_forward_gradient(const Point< chartdim > &chart_point) const
static ::ExceptionBase & ExcMessage(std::string arg1)
virtual DerivativeForm< 1, chartdim, spacedim > push_forward_gradient(const Point< chartdim > &chart_point) const
#define Assert(cond, exc)
#define DEAL_II_NAMESPACE_CLOSE
SmartPointer< const ChartManifold< dim2, spacedim, intermediate_dim >, CompositionManifold< dim, spacedim, chartdim, dim1, dim2, intermediate_dim > > G
const Tensor< 1, chartdim > & get_periodicity() const
SymmetricTensor< 2, dim, Number > d(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
virtual Point< spacedim > push_forward(const Point< chartdim > &chart_point) const
#define DEAL_II_NAMESPACE_OPEN
virtual Point< spacedim > push_forward(const Point< chartdim > &chart_point) const =0
virtual Point< chartdim > pull_back(const Point< spacedim > &space_point) const =0