Documentation 6b54b78464
Loading...
Searching...
No Matches
CSobolevSmoothingVariable.hpp
Go to the documentation of this file.
1/*!
2 * \file CSobolevSmoothingVariable.hpp
3 * \brief Class for defining the variables of the gradient smoothing.
4 * \author T.Dick
5 * \version 8.5.0 "Harrier"
6 *
7 * SU2 Project Website: https://su2code.github.io
8 *
9 * The SU2 Project is maintained by the SU2 Foundation
10 * (http://su2foundation.org)
11 *
12 * Copyright 2012-2026, SU2 Contributors (cf. AUTHORS.md)
13 *
14 * SU2 is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU Lesser General Public
16 * License as published by the Free Software Foundation; either
17 * version 2.1 of the License, or (at your option) any later version.
18 *
19 * SU2 is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * Lesser General Public License for more details.
23 *
24 * You should have received a copy of the GNU Lesser General Public
25 * License along with SU2. If not, see <http://www.gnu.org/licenses/>.
26 */
27
28#pragma once
29
30#include "../../../Common/include/containers/CVertexMap.hpp"
31#include "CVariable.hpp"
32
34 public:
35 MatrixType Sensitivity; /*!< Vector holding the derivative of target functional with respect to the coordinates at this node */
36
37 CVertexMap<unsigned> BoundaryVertexMap; /*!< \brief Stores if a point belongs to the boundary of a boundary. */
38
39 /*!
40 * \brief Constructor of the class.
41 * \param[in] npoint - Number of points/nodes/vertices in the domain.
42 * \param[in] ndim - Number of dimensions of the problem.
43 * \param[in] config - Definition of the particular problem.
44 */
45 CSobolevSmoothingVariable(unsigned long npoint, unsigned long ndim, const CConfig *config);
46
47 /*!
48 * \brief Set the sensitivity at the node
49 * \param[in] iDim - spacial component
50 * \param[in] val - value of the Sensitivity
51 */
52 inline void SetSensitivity(unsigned long iPoint, unsigned long iDim, su2double val) override { Sensitivity(iPoint,iDim) = val;}
53
54 /*!
55 * \brief Get the Sensitivity at the node
56 * \param[in] iDim - spacial component
57 * \return value of the Sensitivity
58 */
59 inline su2double GetSensitivity(unsigned long iPoint, unsigned long iDim) const override { return Sensitivity(iPoint,iDim); }
60
61 /*!
62 * \brief Mark a point as boundary of a boundary
63 */
64 void MarkAsBoundaryPoint(unsigned long iPoint);
65
66 /*!
67 * \brief return wether a point is a boundary of a boundary
68 */
69 bool GetIsBoundaryPoint(unsigned long iPoint) const;
70
71 /*!
72 * \brief Allocate member variables for points marked as vertex (via "MarkAsBoundaryPoint").
73 */
75};
Declaration and inlines of the parent class for defining problem variables, function definitions in f...
Main class for defining the problem; basically this class reads the configuration file,...
Definition CConfig.hpp:64
Definition CSobolevSmoothingVariable.hpp:33
CVertexMap< unsigned > BoundaryVertexMap
Stores if a point belongs to the boundary of a boundary.
Definition CSobolevSmoothingVariable.hpp:37
MatrixType Sensitivity
Definition CSobolevSmoothingVariable.hpp:35
su2double GetSensitivity(unsigned long iPoint, unsigned long iDim) const override
Get the Sensitivity at the node.
Definition CSobolevSmoothingVariable.hpp:59
void AllocateBoundaryVariables()
Allocate member variables for points marked as vertex (via "MarkAsBoundaryPoint").
Definition CSobolevSmoothingVariable.cpp:49
void MarkAsBoundaryPoint(unsigned long iPoint)
Mark a point as boundary of a boundary.
Definition CSobolevSmoothingVariable.cpp:41
void SetSensitivity(unsigned long iPoint, unsigned long iDim, su2double val) override
Set the sensitivity at the node.
Definition CSobolevSmoothingVariable.hpp:52
bool GetIsBoundaryPoint(unsigned long iPoint) const
return wether a point is a boundary of a boundary
Definition CSobolevSmoothingVariable.cpp:45
Main class for defining the variables.
Definition CVariable.hpp:50
A lookup type map, maps indices in a large range to indices in a smaller one.
Definition CVertexMap.hpp:53
passivedouble su2double
Definition code_config.hpp:181