Logbook  (07-04-2025)
Static problems
static_scalar_input.hpp
1 /******************************************************************************
2  * Copyright (C) Siarhei Uzunbajakau, 2023.
3  *
4  * This program is free software. You can use, modify, and redistribute it under
5  * the terms of the GNU Lesser General Public License as published by the Free
6  * Software Foundation, either version 3 or (at your option) any later version.
7  * This program is distributed without any warranty.
8  *
9  * Refer to COPYING.LESSER for more details.
10  ******************************************************************************/
11 
12 #ifndef StaticScalarInput_H__
13 #define StaticScalarInput_H__
14 
15 #include <deal.II/base/function.h>
16 #include <deal.II/base/tensor.h>
17 
18 #include "constants.hpp"
19 #include "settings.hpp"
20 
21 namespace StaticScalarSolver {
22 
62 template<int dim, int stage = 1>
63 class TheCoefficient : private Settings
64 {
65 public:
104  void value_list(const std::vector<Point<dim>>& r,
105  types::material_id mid,
106  unsigned int cuid,
107  std::vector<double>& values) const;
108 };
109 
151 template<int dim, int stage = 1>
152 class PdeRhs : private Settings
153 {
154 public:
205  void value_list(const std::vector<Point<dim>>& r,
206  types::material_id mid,
207  unsigned int cuid,
208  std::vector<double>& values) const;
209 };
210 
248 template<int dim, int stage = 1>
249 class PdeRhsCvp : private Settings
250 {
251 public:
305  void value_list(const std::vector<Point<dim>>& r,
306  types::material_id mid,
307  unsigned int cuid,
308  std::vector<Tensor<1, dim>>& values) const;
309 };
310 
334 template<int dim, int stage = 1>
335 class Gamma : private Settings
336 {
337 public:
391  void value_list(const std::vector<Point<dim>>& r,
392  const std::vector<Tensor<1, dim>>& n,
393  types::boundary_id bid,
394  types::material_id mid,
395  unsigned int cuid,
396  unsigned int fuid,
397  std::vector<double>& values) const;
398 };
399 
423 template<int dim, int stage = 1>
424 class RobinRhs : private Settings
425 {
426 public:
483  void value_list(const std::vector<Point<dim>>& r,
484  const std::vector<Tensor<1, dim>>& n,
485  types::boundary_id bid,
486  types::material_id mid,
487  unsigned int cuid,
488  unsigned int fuid,
489  std::vector<double>& values) const;
490 };
491 
515 template<int dim, int stage = 1>
517 {
518 public:
571  void value_list(const std::vector<Point<dim>>& r,
572  const std::vector<Tensor<1, dim>>& n,
573  types::material_id mid,
574  unsigned int cuid,
575  unsigned int fuid,
576  std::vector<double>& values) const;
577 };
578 
606 template<int dim, int stage = 1>
607 class Weight
608  : public Function<dim>
609  , private Settings
610 {
611 public:
622  virtual double value(const Point<dim>& r,
623  const unsigned int component = 0) const override final;
624 };
625 
626 } // namespace StaticScalarSolver
627 
628 #endif
Global settings for the Method of manufactured solutions (mms/) numerical experiment.
Definition: settings.hpp:25
Implements the right-hand side ( , , , or ), of the continuity condition (v) in the static scalar bou...
void value_list(const std::vector< Point< dim >> &r, const std::vector< Tensor< 1, dim >> &n, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< double > &values) const
Computes the right-hand side of the second continuity condition ( , , , or ).
Implements the coefficient in the left-hand side of the Robin boundary condition (iii) of the static...
void value_list(const std::vector< Point< dim >> &r, const std::vector< Tensor< 1, dim >> &n, types::boundary_id bid, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< double > &values) const
Computes the coefficient at quadrature points.
Implements the two-dimensional free-current density on the right-hand side of the partial differenti...
void value_list(const std::vector< Point< dim >> &r, types::material_id mid, unsigned int cuid, std::vector< Tensor< 1, dim >> &values) const
Computes the two-dimensional free-current density on the right-hand side of the partial differential...
Implements the right-hand side ( , , , or ) in the div-grad partial differential equation (i) of the ...
void value_list(const std::vector< Point< dim >> &r, types::material_id mid, unsigned int cuid, std::vector< double > &values) const
Computes the right-hand side of the div-grad partial differential equation at quadrature points.
Implements the right-hand side ( or ) of the Robin boundary condition (iii) in the static scalar bou...
void value_list(const std::vector< Point< dim >> &r, const std::vector< Tensor< 1, dim >> &n, types::boundary_id bid, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< double > &values) const
Computes the right-hand side of the Robin boundary condition ( or ).
Implements the coefficient ( , , etc.) in the div-grad partial differential equation (i) of the scala...
void value_list(const std::vector< Point< dim >> &r, types::material_id mid, unsigned int cuid, std::vector< double > &values) const
Computes the values of the coefficient at quadrature points.
Implements the weight function for calculating the , , and error norms.
virtual double value(const Point< dim > &r, const unsigned int component=0) const override final
Returns the value of weight at point r. All error norms, , , and , at point r will be multiplied by t...