Revision 261de7d448d47dd4ff090a8f713681f03a2db4de authored by Lars Bilke on 20 September 2021, 06:54:14 UTC, committed by Lars Bilke on 20 September 2021, 06:54:14 UTC
1 parent e6bbe71
Raw File
ConvergenceCriterionPerComponent.h
/**
 * \file
 * \copyright
 * Copyright (c) 2012-2021, 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 "ConvergenceCriterion.h"
#include "MathLib/LinAlg/LinAlg.h"  // For MathLib::VecNormType

namespace MeshLib
{
class Mesh;
}  // namespace MeshLib

namespace NumLib
{
class LocalToGlobalIndexMap;

//! Interface for applying a convergence criterion individually to each
//! component of a multi-component solution or residual vector.
//! Component here means sub-vector, not single scalar vector entry.
class ConvergenceCriterionPerComponent : public ConvergenceCriterion
{
public:
    explicit ConvergenceCriterionPerComponent(
        const MathLib::VecNormType norm_type)
        : ConvergenceCriterion(norm_type)
    {
    }

    //! Sets the d.o.f. table used to extract data for a specific component.
    virtual void setDOFTable(NumLib::LocalToGlobalIndexMap const& dof_table,
                             MeshLib::Mesh const& mesh) = 0;
};

}  // namespace NumLib
back to top