Logbook  (07-04-2025)
Static problems
static_vector_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 StaticVectorInput_H__
13 #define StaticVectorInput_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 using namespace dealii;
22 
23 namespace StaticVectorSolver {
24 
51 template<int dim, int stage = 1>
52 class TheCoefficient : private Settings
53 {
54 public:
98  void value_list(const std::vector<Point<dim>>& r,
99  types::material_id mid,
100  unsigned int cuid,
101  std::vector<double>& values) const;
102 };
103 
138 template<int dim, int stage = 1>
139 class PdeRhs : private Settings
140 {
141 public:
190  void value_list(const std::vector<Point<dim>>& r,
191  types::material_id mid,
192  unsigned int cuid,
193  std::vector<Tensor<1, dim>>& values) const;
194 };
195 
219 template<int dim, int stage = 1>
220 class Gamma : private Settings
221 {
222 public:
278  void value_list(const std::vector<Point<dim>>& r,
279  const std::vector<Tensor<1, dim>>& n,
280  types::boundary_id bid,
281  types::material_id mid,
282  unsigned int cuid,
283  unsigned int fuid,
284  std::vector<double>& values) const;
285 };
286 
310 template<int dim, int stage = 1>
311 class RobinRhs : private Settings
312 {
313 public:
364  void value_list(const std::vector<Point<dim>>& r,
365  const std::vector<Tensor<1, dim>>& n,
366  types::boundary_id bid,
367  types::material_id mid,
368  unsigned int cuid,
369  unsigned int fuid,
370  std::vector<Tensor<1, dim>>& values) const;
371 };
372 
396 template<int dim, int stage = 1>
398 {
399 public:
448  void value_list(const std::vector<Point<dim>>& r,
449  const std::vector<Tensor<1, dim>>& n,
450  types::material_id mid,
451  unsigned int cuid,
452  unsigned int fuid,
453  std::vector<Tensor<1, dim>>& values) const;
454 };
455 
471 template<int dim, int stage = 1>
472 class Weight
473  : public Function<dim>
474  , private Settings
475 {
476 public:
487  virtual double value(const Point<dim>& r,
488  const unsigned int component = 0) const override final;
489 };
490 
491 } // namespace StaticVectorSolver
492 
493 #endif
Global settings for the Method of manufactured solutions (mms/) numerical experiment.
Definition: settings.hpp:25
Implements the surface free-current density, , on the right-hand side of the continuity condition (v)...
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< Tensor< 1, dim >> &values) const
Computes values of the surface free-current density, , on the right-hand side of the continuity condi...
Implements the coefficient on 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 values of the parameter of the Robin boundary condition at quadrature points.
Implements the source vector field on the right-hand side of the partial differential equation (i) of...
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 vector field on the right-hand side of the partial differential equation.
Implements the vector field, , on the right-hand side of the Robin boundary condition (iii) of the st...
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< Tensor< 1, dim >> &values) const
Computes values of the vector field on the right-hand side of the Robin boundary condition at quadra...
Implements the permeability, , in the partial differential equation (i) of the vector boundary value ...
void value_list(const std::vector< Point< dim >> &r, types::material_id mid, unsigned int cuid, std::vector< double > &values) const
Computes values of permeability, , 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...