1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// *****************************************************************************
/*!
  \file      src/Inciter/AMR/Error.hpp
  \copyright 2012-2015 J. Bakosi,
             2016-2018 Los Alamos National Security, LLC.,
             2019-2021 Triad National Security, LLC.,
             2022-2025 J. Bakosi
             All rights reserved. See the LICENSE file for details.
  \brief     Class for computing error estimates for mesh refinement
  \details   Class for computing error estimates for mesh refinement.
*/
// *****************************************************************************
#pragma once

#include "Fields.hpp"
#include "AMR/edge.hpp"<--- Include file: "AMR/edge.hpp" not found.

namespace AMR {

//! Class for computing error estimates for mesh refinement
class Error {

  public:
    //! Compute error estimate for a scalar quantity
    tk::real scalar( const tk::Fields& u,
                     const edge_t& edge,
                     uint64_t c,
                     const std::array< std::vector< tk::real >, 3 >& coord,
                     const std::vector< std::size_t >& inpoel,
                     const std::pair< std::vector< std::size_t >,
                                      std::vector< std::size_t > >& esup,
                     const std::string& err ) const;

  private:
    //! Estimate error for scalar quantity on edge based on jump in solution
    tk::real
    error_jump( const tk::Fields& u,
                const edge_t& edge,
                uint64_t c ) const;

    //! Estimate error for scalar quantity on edge based on Hessian of solution
    tk::real
    error_hessian( const tk::Fields& u,
                   const edge_t& edge,
                   uint64_t c,
                   const std::array< std::vector< tk::real >, 3 >& coord,
                   const std::vector< std::size_t >& inpoel,
                   const std::pair< std::vector< std::size_t >,
                                    std::vector< std::size_t > >& esup ) const;
};

} // AMR::