|
dune-fem 2.12-git
|
Loading...
Searching...
No Matches
integrands.hh
Go to the documentation of this file.
35 using DomainValueType = typename std::decay_t< decltype( std::ref( std::declval< const Integrands & >() ).get() ) >::DomainValueType;
38 using RangeValueType = typename std::decay_t< decltype( std::ref( std::declval< const Integrands & >() ).get() ) >::RangeValueType;
41 using GridPartType = typename std::decay_t< decltype( std::ref( std::declval< const Integrands & >() ).get() ) >::GridPartType;
59 using InteriorQuadraturePointType = QuadraturePointWrapper< InteriorQuadratureType< Integrands > >;
62 using SurfaceQuadraturePointType = QuadraturePointWrapper< SurfaceQuadratureType< Integrands > >;
66 std::true_type interior ( const Integrands &, decltype( std::declval< const Integrands & >().interior( std::declval< const InteriorQuadraturePointType< Integrands > & >(), std::declval< const DomainValueType< Integrands > & >() ) ) * = nullptr );
70 template< class Integrands, std::enable_if_t< std::is_same< decltype( std::declval< const Integrands & >().hasInterior() ), bool >::value, int > = 0 >
75 template< class Integrands, std::enable_if_t< std::is_same< decltype( std::declval< const Integrands & >().nonlinear() ), bool >::value, int > = 0 >
82 std::true_type boundary ( const Integrands &, decltype( std::declval< const Integrands & >().boundary( std::declval< const SurfaceQuadraturePointType< Integrands > & >(), std::declval< const DomainValueType< Integrands > & >() ) ) * = nullptr );
86 template< class Integrands, std::enable_if_t< std::is_same< decltype( std::declval< const Integrands & >().hasBoundary() ), bool >::value, int > = 0 >
93 std::true_type skeleton ( const Integrands &, decltype( std::declval< const Integrands & >().skeleton( std::declval< const SurfaceQuadraturePointType< Integrands > & >(), std::declval< const DomainValueType< Integrands > & >(), std::declval< const SurfaceQuadraturePointType< Integrands > & >(), std::declval< const DomainValueType< Integrands > & >() ) ) * = nullptr );
97 template< class Integrands, std::enable_if_t< std::is_same< decltype( std::declval< const Integrands & >().hasSkeleton() ), bool >::value, int > = 0 >
125 static const bool hasNonLinear = decltype( Impl::IntegrandsTraits::hasNonLinear( std::declval< const Integrands & >() ) )::value;
127 static const bool interior = decltype( Impl::IntegrandsTraits::interior( std::declval< const Integrands & >() ) )::value;
128 static const bool hasInterior = decltype( Impl::IntegrandsTraits::hasInterior( std::declval< const Integrands & >() ) )::value;
130 static const bool boundary = decltype( Impl::IntegrandsTraits::boundary( std::declval< const Integrands & >() ) )::value;
131 static const bool hasBoundary = decltype( Impl::IntegrandsTraits::hasBoundary( std::declval< const Integrands & >() ) )::value;
133 static const bool skeleton = decltype( Impl::IntegrandsTraits::skeleton( std::declval< const Integrands & >() ) )::value;
134 static const bool hasSkeleton = decltype( Impl::IntegrandsTraits::hasSkeleton( std::declval< const Integrands & >() ) )::value;
136 static_assert( (!hasInterior || interior), "Existence of method 'hasInterior' implies existence of method interior." );
137 static_assert( (!hasBoundary || boundary), "Existence of method 'hasBoundary' implies existence of method boundary." );
138 static_assert( (!hasSkeleton || skeleton), "Existence of method 'hasSkeleton' implies existence of method skeleton." );
189 static RangeValueType interior ( const T &integrands, const Point &x, const DomainValueType &u )
195 static RangeValueType interior ( const T &integrands, const Point &x, const DomainValueType &u )
201 static auto linearizedInterior ( const T &integrands, const Point &x, const DomainValueType &u )
207 static auto linearizedInterior ( const T &integrands, const Point &x, const DomainValueType &u )
225 static RangeValueType boundary ( const T &integrands, const Point &x, const DomainValueType &u )
231 static RangeValueType boundary ( const T &integrands, const Point &x, const DomainValueType &u )
237 static auto linearizedBoundary ( const T &integrands, const Point &x, const DomainValueType &u )
243 static auto linearizedBoundary ( const T &integrands, const Point &x, const DomainValueType &u )
261 static std::pair< RangeValueType, RangeValueType > skeleton ( const T &integrands, const Point &xIn, const DomainValueType &uIn, const Point &xOut, const DomainValueType &uOut )
267 static std::pair< RangeValueType, RangeValueType > skeleton ( const T &integrands, const Point &xIn, const DomainValueType &uIn, const Point &xOut, const DomainValueType &uOut )
273 static auto linearizedSkeleton ( const T &integrands, const Point &xIn, const DomainValueType &uIn, const Point &xOut, const DomainValueType &uOut )
279 static auto linearizedSkeleton ( const T &integrands, const Point &xIn, const DomainValueType &uIn, const Point &xOut, const DomainValueType &uOut )
281 auto zero = [] ( const DomainValueType & ) { return std::make_pair( RangeValueType(), RangeValueType() ); };
294 bool init ( const IntersectionType &intersection ) { return integrands().init( intersection ); }
330 std::pair< RangeValueType, RangeValueType > skeleton ( const Point &xIn, const DomainValueType &uIn, const Point &xOut, const DomainValueType &uOut ) const
336 auto linearizedSkeleton ( const Point &xIn, const DomainValueType &uIn, const Point &xOut, const DomainValueType &uOut ) const
361 bool isDirichletIntersection( const IntersectionType& inter, DirichletComponentType &dirichletComponent ) const
426 using RJacobianRangeType = typename detail::GetDimRange<std::tuple_element_t<0,RangeValueType>>::template dtype<GridPart::dimension>;
448 using LinearizationPair = std::pair< Linearization< std::pair< R, R > >, Linearization< std::pair< R, R > > >;
462 virtual RangeValueType interior ( const InteriorCachingPointType &x, const DomainValueType &u ) const = 0;
463 virtual RangeValueType interior ( const InteriorElementPointType &x, const DomainValueType &u ) const = 0;
464 virtual Linearization< RangeValueType > linearizedInterior ( const InteriorCachingPointType &x, const DomainValueType &u ) const = 0;
465 virtual Linearization< RangeValueType > linearizedInterior ( const InteriorElementPointType &x, const DomainValueType &u ) const = 0;
468 virtual RangeValueType boundary ( const SurfaceCachingPointType &x, const DomainValueType &u ) const = 0;
469 virtual RangeValueType boundary ( const SurfaceElementPointType &x, const DomainValueType &u ) const = 0;
470 virtual Linearization< RangeValueType > linearizedBoundary ( const SurfaceCachingPointType &x, const DomainValueType &u ) const = 0;
471 virtual Linearization< RangeValueType > linearizedBoundary ( const SurfaceElementPointType &x, const DomainValueType &u ) const = 0;
474 virtual std::pair< RangeValueType, RangeValueType > skeleton ( const SurfaceCachingPointType &xIn, const DomainValueType &uIn, const SurfaceCachingPointType &xOut, const DomainValueType &uOut ) const = 0;
475 virtual std::pair< RangeValueType, RangeValueType > skeleton ( const SurfaceElementPointType &xIn, const DomainValueType &uIn, const SurfaceElementPointType &xOut, const DomainValueType &uOut ) const = 0;
476 virtual LinearizationPair< RangeValueType > linearizedSkeleton ( const SurfaceCachingPointType &xIn, const DomainValueType &uIn, const SurfaceCachingPointType &xOut, const DomainValueType &uOut ) const = 0;
477 virtual LinearizationPair< RangeValueType > linearizedSkeleton ( const SurfaceElementPointType &xIn, const DomainValueType &uIn, const SurfaceElementPointType &xOut, const DomainValueType &uOut ) const = 0;
480 virtual bool isDirichletIntersection( const IntersectionType& inter, DirichletComponentType &dirichletComponent ) const = 0;
495 virtual bool init ( const IntersectionType &intersection ) override { return impl().init( intersection ); }
501 virtual RangeValueType interior ( const InteriorCachingPointType &x, const DomainValueType &u ) const override { return impl().interior( asQP( x ), u ); }
502 virtual RangeValueType interior ( const InteriorElementPointType &x, const DomainValueType &u ) const override { return impl().interior( asQP( x ), u ); }
503 virtual Linearization< RangeValueType > linearizedInterior ( const InteriorCachingPointType &x, const DomainValueType &u ) const override { return impl().linearizedInterior( asQP( x ), u ); }
504 virtual Linearization< RangeValueType > linearizedInterior ( const InteriorElementPointType &x, const DomainValueType &u ) const override { return impl().linearizedInterior( asQP( x ), u ); }
507 virtual RangeValueType boundary ( const SurfaceCachingPointType &x, const DomainValueType &u ) const override { return impl().boundary( asQP( x ), u ); }
508 virtual RangeValueType boundary ( const SurfaceElementPointType &x, const DomainValueType &u ) const override { return impl().boundary( asQP( x ), u ); }
509 virtual Linearization< RangeValueType > linearizedBoundary ( const SurfaceCachingPointType &x, const DomainValueType &u ) const override { return impl().linearizedBoundary( asQP( x ), u ); }
510 virtual Linearization< RangeValueType > linearizedBoundary ( const SurfaceElementPointType &x, const DomainValueType &u ) const override { return impl().linearizedBoundary( asQP( x ), u ); }
513 virtual std::pair< RangeValueType, RangeValueType > skeleton ( const SurfaceCachingPointType &xIn, const DomainValueType &uIn, const SurfaceCachingPointType &xOut, const DomainValueType &uOut ) const override { return impl().skeleton( asQP( xIn ), uIn, asQP( xOut ), uOut ); }
514 virtual std::pair< RangeValueType, RangeValueType > skeleton ( const SurfaceElementPointType &xIn, const DomainValueType &uIn, const SurfaceElementPointType &xOut, const DomainValueType &uOut ) const override { return impl().skeleton( asQP( xIn ), uIn, asQP( xOut ), uOut ); }
515 virtual LinearizationPair< RangeValueType > linearizedSkeleton ( const SurfaceCachingPointType &xIn, const DomainValueType &uIn, const SurfaceCachingPointType &xOut, const DomainValueType &uOut ) const override { return impl().linearizedSkeleton( asQP( xIn ), uIn, asQP( xOut ), uOut ); }
516 virtual LinearizationPair< RangeValueType > linearizedSkeleton ( const SurfaceElementPointType &xIn, const DomainValueType &uIn, const SurfaceElementPointType &xOut, const DomainValueType &uOut ) const override { return impl().linearizedSkeleton( asQP( xIn ), uIn, asQP( xOut ), uOut ); }
519 virtual bool isDirichletIntersection( const IntersectionType& inter, DirichletComponentType &dirichletComponent ) const override { return impl().isDirichletIntersection(inter,dirichletComponent); }
520 virtual void dirichlet( int bndId, const DomainType &x,RRangeType &value) const override { impl().dirichlet(bndId,x,value); }
521 virtual void dDirichlet( int bndId, const DomainType &x,RJacobianRangeType &value) const override { impl().dDirichlet(bndId,x,value); }
531 using isVirtualized = std::is_same< std::decay_t< decltype( std::ref( std::declval< Integrands & >() ).get() ) >, This >;
534 template< class Integrands, std::enable_if_t< IntegrandsTraits< std::decay_t< Integrands > >::isFull && !isVirtualized< Integrands >::value, int > = 0 >
539 template< class Integrands, std::enable_if_t< !IntegrandsTraits< Integrands >::isFull && !isVirtualized< Integrands >::value, int > = 0 >
541 : VirtualizedIntegrands( FullIntegrands< std::decay_t< Integrands > >( std::move( integrands ) ) )
566 template< class Quadrature, std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0 >
567 RangeValueType interior ( const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u ) const
572 template< class Quadrature, std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0 >
573 RangeValueType interior ( const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u ) const
578 template< class Quadrature, std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0 >
579 auto linearizedInterior ( const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u ) const
584 template< class Quadrature, std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0 >
585 auto linearizedInterior ( const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u ) const
592 template< class Quadrature, std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0 >
593 RangeValueType boundary ( const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u ) const
598 template< class Quadrature, std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0 >
599 RangeValueType boundary ( const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u ) const
604 template< class Quadrature, std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0 >
605 auto linearizedBoundary ( const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u ) const
610 template< class Quadrature, std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0 >
611 auto linearizedBoundary ( const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u ) const
618 template< class Quadrature, std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0 >
619 std::pair< RangeValueType, RangeValueType > skeleton ( const Fem::QuadraturePointWrapper< Quadrature > &xIn, const DomainValueType &uIn, const Fem::QuadraturePointWrapper< Quadrature > &xOut, const DomainValueType &uOut ) const
624 template< class Quadrature, std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0 >
625 std::pair< RangeValueType, RangeValueType > skeleton ( const Fem::QuadraturePointWrapper< Quadrature > &xIn, const DomainValueType &uIn, const Fem::QuadraturePointWrapper< Quadrature > &xOut, const DomainValueType &uOut ) const
630 template< class Quadrature, std::enable_if_t< std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0 >
631 auto linearizedSkeleton ( const Fem::QuadraturePointWrapper< Quadrature > &xIn, const DomainValueType &uIn, const Fem::QuadraturePointWrapper< Quadrature > &xOut, const DomainValueType &uOut ) const
636 template< class Quadrature, std::enable_if_t< !std::is_convertible< Quadrature, Fem::CachingInterface >::value, int > = 0 >
637 auto linearizedSkeleton ( const Fem::QuadraturePointWrapper< Quadrature > &xIn, const DomainValueType &uIn, const Fem::QuadraturePointWrapper< Quadrature > &xOut, const DomainValueType &uOut ) const
646 bool isDirichletIntersection( const IntersectionType& inter, DirichletComponentType &dirichletComponent ) const
712 model().linSource( std::get< 0 >( u ), std::get< 1 >( u ), x, std::get< 0 >( phi ), std::get< 1 >( phi ), source );
714 model().linFlux( std::get< 0 >( u ), std::get< 1 >( u ), x, std::get< 0 >( phi ), std::get< 1 >( phi ), dFlux );
813 model().linSource( std::get< 0 >( u ), std::get< 1 >( u ), x, std::get< 0 >( phi ), std::get< 1 >( phi ), source );
815 model().linFlux( std::get< 0 >( u ), std::get< 1 >( u ), x, std::get< 0 >( phi ), std::get< 1 >( phi ), dFlux );
839 std::pair< RangeValueType, RangeValueType > skeleton ( const Point &xIn, const DomainValueType &uIn, const Point &xOut, const DomainValueType &uOut ) const
876 return std::make_pair( RangeValueType( -int0, dFluxPrimeIn ), RangeValueType( int0, dFluxPrimeOut ) );
880 auto linearizedSkeleton ( const Point &xIn, const DomainValueType &uIn, const Point &xOut, const DomainValueType &uOut ) const
902 model().linFlux( std::get< 0 >( uOut ), std::get< 1 >( uJump ), xOut, 0, std::get< 1 >( phiJump ), dFluxPrimeOut );
906 model().linFlux( std::get< 0 >( uIn ), std::get< 1 >( uJump ), xIn, std::get< 0 >( phiIn ), std::get< 1 >( phiJump ), dFluxPrimeIn );
910 model().linFlux( std::get< 0 >( uIn ), std::get< 1 >( uIn ), xIn, std::get< 0 >( phiIn ), std::get< 1 >( phiIn ), dFluxIn );
919 return std::make_pair( RangeValueType( -int0, dFluxPrimeIn ), RangeValueType( int0, dFluxPrimeOut ) );
935 model().linFlux( std::get< 0 >( uOut ), std::get< 1 >( uJump ), xOut, std::get< 0 >( phiOut ), std::get< 1 >( phiJump ), dFluxPrimeOut );
939 model().linFlux( std::get< 0 >( uOut ), std::get< 1 >( uOut ), xOut, std::get< 0 >( phiOut ), std::get< 1 >( phiOut ), dFluxOut );
943 model().linFlux( std::get< 0 >( uIn ), std::get< 1 >( uJump ), xIn, 0, std::get< 1 >( phiJump ), dFluxPrimeIn );
952 return std::make_pair( RangeValueType( -int0, dFluxPrimeIn ), RangeValueType( int0, dFluxPrimeOut ) );
961 const IntersectionType &intersection () const { assert( intersection_ ); return *intersection_; }
#define DUNE_PRIVATE
double alpha() const
void init(const Matrix *matrix)
constexpr auto get(std::integer_sequence< T, II... >, std::integral_constant< std::size_t, pos >={})
Implementation & impl()
constexpr Interior interior
STL namespace.
Definition integrands.hh:117
Impl::IntegrandsTraits::RJacobianRangeType< Integrands > RJacobianRangeType
Definition integrands.hh:143
Impl::IntegrandsTraits::DomainValueType< Integrands > DomainValueType
Definition integrands.hh:118
Impl::IntegrandsTraits::EntityType< Integrands > EntityType
Definition integrands.hh:122
Impl::IntegrandsTraits::RRangeType< Integrands > RRangeType
Definition integrands.hh:142
Impl::IntegrandsTraits::GridPartType< Integrands > GridPartType
Definition integrands.hh:120
Impl::IntegrandsTraits::IntersectionType< Integrands > IntersectionType
Definition integrands.hh:123
Impl::IntegrandsTraits::RangeValueType< Integrands > RangeValueType
Definition integrands.hh:119
Impl::IntegrandsTraits::DirichletComponentType< Integrands > DirichletComponentType
Definition integrands.hh:144
Definition integrands.hh:154
Integrands::type RealIntegrands
Definition integrands.hh:342
FullIntegrands(Args &&... args)
Definition integrands.hh:287
IntegrandsTraits< Integrands >::GridPartType GridPartType
Definition integrands.hh:157
bool init(const IntersectionType &intersection)
Definition integrands.hh:294
const RealIntegrands & integrands() const
Definition integrands.hh:346
auto linearizedBoundary(const Point &x, const DomainValueType &u) const
Definition integrands.hh:322
std::pair< RangeValueType, RangeValueType > skeleton(const Point &xIn, const DomainValueType &uIn, const Point &xOut, const DomainValueType &uOut) const
Definition integrands.hh:330
bool isDirichletIntersection(const IntersectionType &inter, DirichletComponentType &dirichletComponent) const
Definition integrands.hh:361
IntegrandsTraits< Integrands >::IntersectionType IntersectionType
Definition integrands.hh:160
IntegrandsTraits< Integrands >::EntityType EntityType
Definition integrands.hh:159
bool hasDirichletBoundary() const
Definition integrands.hh:357
IntegrandsTraits< Integrands >::DirichletComponentType DirichletComponentType
Definition integrands.hh:356
void dirichlet(int bndId, const Point &x, RRangeType &value) const
Definition integrands.hh:366
IntegrandsTraits< Integrands >::RRangeType RRangeType
Definition integrands.hh:354
RangeValueType interior(const Point &x, const DomainValueType &u) const
Definition integrands.hh:302
auto linearizedSkeleton(const Point &xIn, const DomainValueType &uIn, const Point &xOut, const DomainValueType &uOut) const
Definition integrands.hh:336
void dDirichlet(int bndId, const Point &x, RJacobianRangeType &value) const
Definition integrands.hh:371
auto linearizedInterior(const Point &x, const DomainValueType &u) const
Definition integrands.hh:308
RangeValueType boundary(const Point &x, const DomainValueType &u) const
Definition integrands.hh:316
IntegrandsTraits< Integrands >::DomainValueType DomainValueType
Definition integrands.hh:155
IntegrandsTraits< Integrands >::RangeValueType RangeValueType
Definition integrands.hh:156
IntegrandsTraits< Integrands >::RJacobianRangeType RJacobianRangeType
Definition integrands.hh:355
Definition integrands.hh:414
RangeValueType boundary(const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u) const
Definition integrands.hh:593
DomainValue DomainValueType
Definition integrands.hh:419
RangeValueType interior(const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u) const
Definition integrands.hh:567
VirtualizedIntegrands & operator=(const This &other)
Definition integrands.hh:549
auto linearizedBoundary(const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u) const
Definition integrands.hh:605
VirtualizedIntegrands(Integrands integrands)
Definition integrands.hh:535
typename detail::GetDimRange< std::tuple_element_t< 0, RangeValueType > >::template dtype< GridPart::dimension > RJacobianRangeType
Definition integrands.hh:426
VirtualizedIntegrands(This &&)=default
std::array< int, RRangeType::dimension > DirichletComponentType
Definition integrands.hh:427
GridPartType::template Codim< 0 >::EntityType EntityType
Definition integrands.hh:422
typename detail::GetDimRange< std::tuple_element_t< 0, RangeValueType > >::type RRangeType
Definition integrands.hh:425
VirtualizedIntegrands(const This &other)
Definition integrands.hh:544
auto linearizedSkeleton(const Fem::QuadraturePointWrapper< Quadrature > &xIn, const DomainValueType &uIn, const Fem::QuadraturePointWrapper< Quadrature > &xOut, const DomainValueType &uOut) const
Definition integrands.hh:631
EntityType::Geometry::LocalCoordinate DomainType
Definition integrands.hh:428
bool init(const IntersectionType &intersection)
Definition integrands.hh:559
void dDirichlet(int bndId, const DomainType &x, RJacobianRangeType &value) const
Definition integrands.hh:654
bool isDirichletIntersection(const IntersectionType &inter, DirichletComponentType &dirichletComponent) const
Definition integrands.hh:646
RangeValue RangeValueType
Definition integrands.hh:420
GridPartType::IntersectionType IntersectionType
Definition integrands.hh:423
auto linearizedInterior(const Fem::QuadraturePointWrapper< Quadrature > &x, const DomainValueType &u) const
Definition integrands.hh:579
std::pair< RangeValueType, RangeValueType > skeleton(const Fem::QuadraturePointWrapper< Quadrature > &xIn, const DomainValueType &uIn, const Fem::QuadraturePointWrapper< Quadrature > &xOut, const DomainValueType &uOut) const
Definition integrands.hh:619
bool hasDirichletBoundary() const
Definition integrands.hh:642
bool init(const EntityType &entity)
Definition integrands.hh:558
void dirichlet(int bndId, const DomainType &x, RRangeType &value) const
Definition integrands.hh:650
Definition integrands.hh:673
Model::RangeType RangeType
Definition integrands.hh:680
std::tuple< RangeType, JacobianRangeType > DomainValueType
Definition integrands.hh:683
auto linearizedInterior(const Point &x, const DomainValueType &u) const
Definition integrands.hh:708
bool init(const EntityType &entity)
Definition integrands.hh:688
GridPartType::template Codim< 0 >::EntityType EntityType
Definition integrands.hh:677
RangeValueType boundary(const Point &x, const DomainValueType &u) const
Definition integrands.hh:720
bool init(const IntersectionType &intersection)
Definition integrands.hh:690
GridPartType::IntersectionType IntersectionType
Definition integrands.hh:678
Model::GridPartType GridPartType
Definition integrands.hh:675
RangeValueType interior(const Point &x, const DomainValueType &u) const
Definition integrands.hh:698
const Model & model() const
Definition integrands.hh:737
ConservationLawModelIntegrands(const Model &model)
Definition integrands.hh:686
std::tuple< RangeType, JacobianRangeType > RangeValueType
Definition integrands.hh:684
Model::JacobianRangeType JacobianRangeType
Definition integrands.hh:681
auto linearizedBoundary(const Point &x, const DomainValueType &u) const
Definition integrands.hh:728
Definition integrands.hh:750
auto linearizedBoundary(const Point &x, const DomainValueType &u) const
Definition integrands.hh:829
Model::JacobianRangeType JacobianRangeType
Definition integrands.hh:758
bool init(const IntersectionType &intersection)
Definition integrands.hh:775
std::tuple< RangeType, JacobianRangeType > RangeValueType
Definition integrands.hh:763
const Model & model() const
Definition integrands.hh:958
GridPartType::IntersectionType IntersectionType
Definition integrands.hh:755
FieldTraits< RangeType >::field_type RangeFieldType
Definition integrands.hh:760
Model::RangeType RangeType
Definition integrands.hh:757
RangeValueType boundary(const Point &x, const DomainValueType &u) const
Definition integrands.hh:821
RangeValueType interior(const Point &x, const DomainValueType &u) const
Definition integrands.hh:799
Model::GridPartType GridPartType
Definition integrands.hh:752
bool init(const EntityType &entity)
Definition integrands.hh:769
auto linearizedSkeleton(const Point &xIn, const DomainValueType &uIn, const Point &xOut, const DomainValueType &uOut) const
Definition integrands.hh:880
std::pair< RangeValueType, RangeValueType > skeleton(const Point &xIn, const DomainValueType &uIn, const Point &xOut, const DomainValueType &uOut) const
Definition integrands.hh:839
auto linearizedInterior(const Point &x, const DomainValueType &u) const
Definition integrands.hh:809
std::tuple< RangeType, JacobianRangeType > DomainValueType
Definition integrands.hh:762
DGConservationLawModelIntegrands(const Model &model, RangeFieldType penalty)
Definition integrands.hh:765
GridPartType::template Codim< 0 >::EntityType EntityType
Definition integrands.hh:754
T forward(T... args)
T make_pair(T... args)
T make_tuple(T... args)
T min(T... args)
T cref(T... args)
T reset(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8