OGS
HMPhaseField/LocalAssemblerInterface.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <vector>
7
10
11namespace ProcessLib
12{
13namespace HMPhaseField
14{
18{
19 virtual std::vector<double> const& getIntPtSigma(
20 const double t,
21 std::vector<GlobalVector*> const& x,
22 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
23 std::vector<double>& cache) const = 0;
24
25 virtual std::vector<double> const& getIntPtEpsilon(
26 const double t,
27 std::vector<GlobalVector*> const& x,
28 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
29 std::vector<double>& cache) const = 0;
30
31 virtual std::vector<double> const& getIntPtWidth(
32 const double t,
33 std::vector<GlobalVector*> const& x,
34 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
35 std::vector<double>& cache) const = 0;
36
38 std::size_t mesh_item_id,
39 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_tables,
40 std::vector<GlobalVector*> const& x, double const t,
41 double const dt) = 0;
42
43 virtual void computeEnergy(
44 std::size_t mesh_item_id,
45 std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_tables,
46 std::vector<GlobalVector*> const& x, double const t,
47 double& elastic_energy, double& surface_energy,
48 double& pressure_work) = 0;
49};
50
51} // namespace HMPhaseField
52} // namespace ProcessLib
virtual std::vector< double > const & getIntPtSigma(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
virtual void approximateFractureWidth(std::size_t mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, double const t, double const dt)=0
virtual void computeEnergy(std::size_t mesh_item_id, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_tables, std::vector< GlobalVector * > const &x, double const t, double &elastic_energy, double &surface_energy, double &pressure_work)=0
virtual std::vector< double > const & getIntPtWidth(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
virtual std::vector< double > const & getIntPtEpsilon(const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0