Program Listing for File problem.h
↰ Return to documentation for file (modules/problem.h
)
// SPDX-FileCopyrightText: 2024 The OpenSn Authors <https://open-sn.github.io/opensn/>
// SPDX-License-Identifier: MIT
#pragma once
#include "framework/parameters/input_parameters.h"
#include <iostream>
#include <utility>
namespace opensn
{
class FieldFunctionGridBased;
class TimeStepper;
class Problem
{
public:
explicit Problem(std::string name);
explicit Problem(const InputParameters& params);
virtual ~Problem() = default;
std::string GetName() const;
std::vector<std::shared_ptr<FieldFunctionGridBased>>& GetFieldFunctions();
const std::vector<std::shared_ptr<FieldFunctionGridBased>>& GetFieldFunctions() const;
/// Initialize function.
virtual void Initialize();
/// Generalized query for information supporting varying returns.
virtual ParameterBlock GetInfo(const ParameterBlock& params) const;
virtual void SetProperties(const ParameterBlock& params);
/// PreCheck call to GetInfo.
ParameterBlock GetInfoWithPreCheck(const ParameterBlock& params) const;
protected:
std::vector<std::shared_ptr<FieldFunctionGridBased>> field_functions_;
private:
const std::string name_;
public:
/// Returns the input parameters.
static InputParameters GetInputParameters();
};
} // namespace opensn