root/include/secOrd_op_linearHeat.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*! \file secOrd_op_linearHeat.h
   2     \author Christian Power
   3     \date 17. March 2016
   4 
   5     \brief Standard heat resp. diffusion equation for an 
   6            evolving or stationary surface problem
   7 
   8      Revision history
   9      --------------------------------------------------
  10 
  11           Revised by Christian Power dd.mm.yyyy
  12           Originally written by Christian Power
  13                (power22c@gmail.com) 28. Januar 2016
  14 
  15      Idea
  16      --------------------------------------------------
  17 
  18      Provides a class that performs the standard Dziuk Elliott evolving surface
  19      finite element discretization with implicit euler time discretization.
  20 
  21      Partial differential equation
  22      ==================================================
  23 
  24      Parameter
  25      --------------------------------------------------
  26 
  27      - Right-hand side function f 
  28      - Function u_0 for start time t_0 
  29      - Surface velocity v
  30      
  31      Smooth problem
  32      --------------------------------------------------
  33      
  34      Search for \f$u\colon \surface \to \R\f$ for
  35      \f{equation*}{
  36        \matd u + u \diver(v) - \laplaceBeltrami u = f
  37      \f}
  38      
  39      Finite element discretization
  40      --------------------------------------------------
  41 
  42      Search for \f$\nodalValue{u}\colon I \to \R^N \f$ for
  43      \f{equation*}{
  44        \dell_t \parentheses[\big]{M(t) \nodalValue{u} } + A(t) \nodalValue{u}
  45        = M(t)\nodalValue{Pf},
  46      \f}
  47      where \f$ \nodalValue{Pf} \f$ are the nodal values of the 
  48      \f$ L^2 \f$-projection of \f$ f \f$.
  49 
  50      Full discretization
  51      --------------------------------------------------
  52      
  53      Given \f$ \nodalValue{u}^n \f$ solve for \f$ \nodalValue{u}^{n+1} \f$
  54      \f{equation*}{
  55        (M\nodalValue{u})^{n+1} + \tau (A \nodalValue{u})^{n+1}
  56        = (M \nodalValue{w})^n + \tau (M \nodalValue{Pf})^{n+1} 
  57      \f}
  58 
  59          This programm implements a basic expression calculator.
  60          Input from cin; output to cout.  The grammar for input is: etc.
  61 
  62      Created by Christian Power on 28.01.2016
  63      Copyright (c) 2016 Christian Power.  All rights reserved.
  64  */
  65 
  66 #ifndef SECORD_OP_LINEARHEAT_H
  67 #define SECORD_OP_LINEARHEAT_H 
  68 
  69 #include <memory>
  70 #include "esfem_fwd.h"
  71 
  72 namespace Esfem{
  73   namespace SecOrd_op{
  74     class Linear_heat{
  75     public:
  76       explicit Linear_heat(const Io::Parameter&, const Grid::Grid_and_time&);
  77       ~Linear_heat();
  78       
  79       void solve(const Grid::Scal_FEfun& rhs, Grid::Scal_FEfun& lhs) const;
  80       void apply_massMatrix_to(Grid::Scal_FEfun&) const;
  81       void mass_matrix(const Grid::Scal_FEfun& rhs, Grid::Scal_FEfun& lhs) const;
  82     private:
  83       struct Data;
  84       std::unique_ptr<Data> d_ptr;
  85     };    
  86   }
  87 }
  88 
  89 #endif // SECORD_OP_LINEARHEAT_H

/* [<][>][^][v][top][bottom][index][help] */