2#ifndef DUNE_PDELAB_LOCALOPERATOR_LINEARACOUSTICSPARAMETER_HH
3#define DUNE_PDELAB_LOCALOPERATOR_LINEARACOUSTICSPARAMETER_HH
7#include<dune/common/exceptions.hh>
8#include<dune/common/fvector.hh>
9#include<dune/geometry/type.hh>
10#include<dune/geometry/referenceelements.hh>
11#include<dune/geometry/quadraturerules.hh>
25 template<
typename GV,
typename RF>
41 typedef Dune::FieldVector<DomainFieldType,dimDomain>
DomainType;
50 typedef Dune::FieldVector<RF,GV::dimension>
RangeType;
53 typedef Dune::FieldVector<RF,GV::dimension+1>
StateType;
56 typedef typename GV::Traits::template Codim<0>::Entity
ElementType;
63 typename T::Traits::RangeFieldType,
64 T::Traits::dimDomain+1,Dune::FieldVector<typename T::Traits::RangeFieldType,T::Traits::dimDomain+1> >
65 ,LinearAcousticsInitialValueAdapter<T> >
69 typename T::Traits::RangeFieldType,
70 T::Traits::dimDomain+1,Dune::FieldVector<typename T::Traits::RangeFieldType,T::Traits::dimDomain+1> >
Traits;
93 template<
typename GV,
typename RF>
100 : pi(3.141592653589793238462643), time(0.0)
105 typename Traits::RangeFieldType
106 c (
const typename Traits::ElementType& e,
const typename Traits::DomainType& x)
const
112 typename Traits::StateType
113 g (
const typename Traits::IntersectionType& is,
const typename Traits::IntersectionDomainType& x,
const typename Traits::StateType&
s)
const
115 typename Traits::DomainType xglobal = is.geometry().global(x);
118 typename Traits::StateType u(0.0);
120 u[1] = 1.224*(1+0.5*sin(2*pi*1500.0*time));
123 if (xglobal[0]>1.0-1e-6)
125 typename Traits::StateType u(0.0);
128 typename Traits::StateType u(0.0);
135 typename Traits::StateType
136 q (
const typename Traits::ElementType& e,
const typename Traits::DomainType& x)
const
138 typename Traits::StateType rhs(0.0);
143 typename Traits::StateType
144 u0 (
const typename Traits::ElementType& e,
const typename Traits::DomainType& x)
const
146 typename Traits::StateType u(0.0);
const std::string s
Definition function.hh:843
For backward compatibility – Do not use this!
Definition adaptivity.hh:28
Dune::FieldVector< GV::Grid::ctype, GV::dimension > DomainType
domain type in dim-size coordinates
Definition function.hh:50
R RangeType
range type
Definition function.hh:62
GV::Traits::template Codim< 0 >::Entity ElementType
codim 0 entity
Definition function.hh:119
GV GridViewType
The type of the grid view the function lives on.
Definition function.hh:116
traits class holding the function signature, same as in local function
Definition function.hh:183
leaf of a function tree
Definition function.hh:302
Traits class for linear acoustics parameters.
Definition linearacousticsparameter.hh:27
GV::Traits::template Codim< 0 >::Entity ElementType
grid types
Definition linearacousticsparameter.hh:56
Dune::FieldVector< DomainFieldType, dimDomain > DomainType
domain type
Definition linearacousticsparameter.hh:41
GV::Intersection IntersectionType
Definition linearacousticsparameter.hh:57
Dune::FieldVector< RF, GV::dimension > RangeType
range type
Definition linearacousticsparameter.hh:50
GV::Grid::ctype DomainFieldType
Export type for domain field.
Definition linearacousticsparameter.hh:38
@ dimDomain
dimension of the domain
Definition linearacousticsparameter.hh:34
RF RangeFieldType
Export type for range field.
Definition linearacousticsparameter.hh:47
Dune::FieldVector< RF, GV::dimension+1 > StateType
range type
Definition linearacousticsparameter.hh:53
Dune::FieldVector< DomainFieldType, dimDomain-1 > IntersectionDomainType
domain type
Definition linearacousticsparameter.hh:44
GV GridViewType
the grid view
Definition linearacousticsparameter.hh:29
Definition linearacousticsparameter.hh:66
const Traits::GridViewType & getGridView() const
Definition linearacousticsparameter.hh:83
void evaluate(const typename Traits::ElementType &e, const typename Traits::DomainType &x, typename Traits::RangeType &y) const
Evaluate the GridFunction at given position.
Definition linearacousticsparameter.hh:76
Dune::PDELab::GridFunctionTraits< typename T::Traits::GridViewType, typename T::Traits::RangeFieldType, T::Traits::dimDomain+1, Dune::FieldVector< typename T::Traits::RangeFieldType, T::Traits::dimDomain+1 > > Traits
Definition linearacousticsparameter.hh:70
LinearAcousticsInitialValueAdapter(const typename Traits::GridViewType &g_, const T &t_)
constructor
Definition linearacousticsparameter.hh:73
Definition linearacousticsparameter.hh:95
void setTime(RF t)
set time for subsequent evaluation
Definition linearacousticsparameter.hh:151
Traits::StateType g(const typename Traits::IntersectionType &is, const typename Traits::IntersectionDomainType &x, const typename Traits::StateType &s) const
Dirichlet boundary condition value.
Definition linearacousticsparameter.hh:113
LinearAcousticsParameterTraits< GV, RF > Traits
Definition linearacousticsparameter.hh:97
LinearAcousticsModelProblem()
Definition linearacousticsparameter.hh:99
Traits::StateType q(const typename Traits::ElementType &e, const typename Traits::DomainType &x) const
right hand side
Definition linearacousticsparameter.hh:136
Traits::StateType u0(const typename Traits::ElementType &e, const typename Traits::DomainType &x) const
initial value
Definition linearacousticsparameter.hh:144
Traits::RangeFieldType c(const typename Traits::ElementType &e, const typename Traits::DomainType &x) const
speed of sound
Definition linearacousticsparameter.hh:106