Revision 2189c193605fd58d277e5d07efb04c0e1c0882b5 authored by Lars Bilke on 11 April 2023, 11:46:45 UTC, committed by Lars Bilke on 11 April 2023, 11:46:45 UTC
Added generic numerical differentiation algorithm

See merge request ogs/ogs!4522
2 parent s 91cb9ac + 0f755a1
Raw File
SubmeshAssemblySupport.h
/**
 * \file
 *
 * \copyright
 * Copyright (c) 2012-2023, OpenGeoSys Community (http://www.opengeosys.org)
 *            Distributed under a Modified BSD License.
 *              See accompanying file LICENSE.txt or
 *              http://www.opengeosys.org/project/license
 */

#pragma once

#include <string>
#include <vector>

#include "BaseLib/Error.h"

namespace MeshLib
{
class Mesh;
}

namespace ProcessLib
{
class SubmeshAssemblySupport
{
public:
    /// Initializes the assembly on submeshes
    ///
    /// \param meshes the submeshes on whom the assembly shall proceed.
    ///
    /// \attention \c meshes must be a must be a non-overlapping cover of the
    /// entire simulation domain (bulk mesh)!
    ///
    /// \return The names of the residuum vectors that will be assembled.
    virtual std::vector<std::string> initializeAssemblyOnSubmeshes(
        std::vector<std::reference_wrapper<MeshLib::Mesh>> const& meshes)
    {
        DBUG(
            "Default implementation of initializeSubmeshAssembly(). Doing "
            "nothing.");

        if (!meshes.empty())
        {
            OGS_FATAL(
                "Submesh residuum assembly is not implemented for this "
                "process. You can avoid this error message, e.g., by removing "
                "<submesh_residuum_output> from the prj file.");
        }

        return {};
    }

    virtual ~SubmeshAssemblySupport() = default;
};
}  // namespace ProcessLib
back to top