SpECTRE Documentation Coverage Report
Current view: top level - Elliptic/Systems/ScalarGaussBonnet/BoundaryConditions - DoNothing.hpp Hit Total Coverage
Commit: a8efe75339f4781ca06d43fed14c40144d5e8a08 Lines: 1 22 4.5 %
Date: 2024-10-17 21:19:21
Legend: Lines: hit not hit

          Line data    Source code
       1           0 : // Distributed under the MIT License.
       2             : // See LICENSE.txt for details.
       3             : 
       4             : #pragma once
       5             : 
       6             : #include <cstddef>
       7             : #include <pup.h>
       8             : #include <string>
       9             : #include <vector>
      10             : 
      11             : #include "DataStructures/Tensor/TypeAliases.hpp"
      12             : #include "Elliptic/BoundaryConditions/BoundaryCondition.hpp"
      13             : #include "Elliptic/BoundaryConditions/BoundaryConditionType.hpp"
      14             : #include "Options/Context.hpp"
      15             : #include "Options/String.hpp"
      16             : #include "Utilities/Gsl.hpp"
      17             : #include "Utilities/Serialization/CharmPupable.hpp"
      18             : #include "Utilities/TMPL.hpp"
      19             : 
      20             : /// \cond
      21             : class DataVector;
      22             : /// \endcond
      23             : 
      24           0 : namespace sgb::BoundaryConditions {
      25             : 
      26             : /// Do not apply a boundary condition, used exclusively for singular boundary
      27             : /// value problems.
      28             : 
      29           1 : class DoNothing : public elliptic::BoundaryConditions::BoundaryCondition<3> {
      30             :  private:
      31           0 :   using Base = elliptic::BoundaryConditions::BoundaryCondition<3>;
      32             : 
      33             :  public:
      34           0 :   static constexpr Options::String help =
      35             :       "Do not apply a boundary condition, used exclusively for singular "
      36             :       "boundary value problems.";
      37             : 
      38           0 :   using options = tmpl::list<>;
      39             : 
      40           0 :   DoNothing() = default;
      41           0 :   DoNothing(const DoNothing&) = default;
      42           0 :   DoNothing& operator=(const DoNothing&) = default;
      43           0 :   DoNothing(DoNothing&&) = default;
      44           0 :   DoNothing& operator=(DoNothing&&) = default;
      45           0 :   ~DoNothing() override = default;
      46             : 
      47             :   /// \cond
      48             :   explicit DoNothing(CkMigrateMessage* m) : Base(m) {}
      49             :   using PUP::able::register_constructor;
      50             :   WRAPPED_PUPable_decl_template(DoNothing);
      51             :   /// \endcond
      52             : 
      53           0 :   std::unique_ptr<domain::BoundaryConditions::BoundaryCondition> get_clone()
      54             :       const override {
      55             :     return std::make_unique<DoNothing>(*this);
      56             :   }
      57             : 
      58           0 :   std::vector<elliptic::BoundaryConditionType> boundary_condition_types()
      59             :       const override {
      60             :     return {1, elliptic::BoundaryConditionType::Dirichlet};
      61             :   }
      62             : 
      63           0 :   using argument_tags = tmpl::list<>;
      64           0 :   using volume_tags = tmpl::list<>;
      65             : 
      66           0 :   void apply(gsl::not_null<Scalar<DataVector>*> /*field*/,
      67             :              gsl::not_null<Scalar<DataVector>*> /*n_dot_field_gradient*/,
      68             :              const tnsr::i<DataVector, 3>& /*deriv_field*/) const {};
      69             : 
      70           0 :   using argument_tags_linearized = tmpl::list<>;
      71           0 :   using volume_tags_linearized = tmpl::list<>;
      72             : 
      73           0 :   void apply_linearized(
      74             :       gsl::not_null<Scalar<DataVector>*> /*field_correction*/,
      75             :       gsl::not_null<Scalar<DataVector>*>
      76             :       /*n_dot_field_gradient_correction*/,
      77             :       const tnsr::i<DataVector, 3>& /*deriv_field_correction*/) const {};
      78             : };
      79             : 
      80           0 : inline bool operator==(const DoNothing& /*lhs*/, const DoNothing& /*rhs*/) {
      81             :   return true;
      82             : }
      83             : 
      84           0 : inline bool operator!=(const DoNothing& /*lhs*/, const DoNothing& /*rhs*/) {
      85             :   return false;
      86             : }
      87             : 
      88             : /// \cond
      89             : PUP::able::PUP_ID DoNothing::my_PUP_ID = 0;  // NOLINT
      90             : /// \endcond
      91             : 
      92             : }  // namespace sgb::BoundaryConditions

Generated by: LCOV version 1.14