Loading...
Searching...
No Matches
LinearTimeDependentProblem.h
// Copyright (C) 2012 Anders Logg
//
// This file is part of DOLFIN.
//
// DOLFIN is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// DOLFIN is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with DOLFIN. If not, see <http://www.gnu.org/licenses/>.
//
// First added: 2012-08-17
// Last changed: 2012-08-20
#ifndef __LINEAR_TIME_DEPENDENT_PROBLEM_H
#define __LINEAR_TIME_DEPENDENT_PROBLEM_H
#include <memory>
#include <dolfin/common/Hierarchical.h>
// FIXME: Temporary fix
#include "Form.h"
namespace dolfin
{
typedef Form TensorProductForm;
// Forward declarations
class BoundaryCondition;
class LinearTimeDependentProblem : public Hierarchical<LinearTimeDependentProblem>
{
public:
LinearTimeDependentProblem(std::shared_ptr<const TensorProductForm> a,
std::shared_ptr<const TensorProductForm> L,
std::shared_ptr<Function> u,
std::vector<std::shared_ptr<const BoundaryCondition>> bcs);
std::shared_ptr<const TensorProductForm> bilinear_form() const;
std::shared_ptr<const TensorProductForm> linear_form() const;
std::shared_ptr<Function> solution();
std::shared_ptr<const Function> solution() const;
std::vector<std::shared_ptr<const BoundaryCondition>> bcs() const;
std::shared_ptr<const FunctionSpace> trial_space() const;
std::shared_ptr<const FunctionSpace> test_space() const;
private:
// Check forms
void check_forms() const;
// The bilinear form
std::shared_ptr<const TensorProductForm> _a;
// The linear form
std::shared_ptr<const TensorProductForm> _l;
// The solution
std::shared_ptr<Function> _u;
// The boundary conditions
std::vector<std::shared_ptr<const BoundaryCondition>> _bcs;
};
}
#endif
dolfin::Form
Base class for UFC code generated by FFC for DOLFIN with option -l.
Definition Form.h:86
dolfin::Hierarchical< LinearTimeDependentProblem >::Hierarchical
Hierarchical(LinearTimeDependentProblem &self)
Definition Hierarchical.h:48
dolfin::LinearTimeDependentProblem::solution
std::shared_ptr< Function > solution()
Return solution variable.
Definition LinearTimeDependentProblem.cpp:48
dolfin::LinearTimeDependentProblem::test_space
std::shared_ptr< const FunctionSpace > test_space() const
Return test space.
Definition LinearTimeDependentProblem.cpp:72
dolfin::LinearTimeDependentProblem::LinearTimeDependentProblem
LinearTimeDependentProblem(std::shared_ptr< const TensorProductForm > a, std::shared_ptr< const TensorProductForm > L, std::shared_ptr< Function > u, std::vector< std::shared_ptr< const BoundaryCondition > > bcs)
Definition LinearTimeDependentProblem.cpp:24
dolfin::LinearTimeDependentProblem::bilinear_form
std::shared_ptr< const TensorProductForm > bilinear_form() const
Return bilinear form.
Definition LinearTimeDependentProblem.cpp:37
dolfin::LinearTimeDependentProblem::trial_space
std::shared_ptr< const FunctionSpace > trial_space() const
Return trial space.
Definition LinearTimeDependentProblem.cpp:65
dolfin::LinearTimeDependentProblem::bcs
std::vector< std::shared_ptr< const BoundaryCondition > > bcs() const
Return boundary conditions.
Definition LinearTimeDependentProblem.cpp:59
dolfin::LinearTimeDependentProblem::linear_form
std::shared_ptr< const TensorProductForm > linear_form() const
Return linear form.
Definition LinearTimeDependentProblem.cpp:43
dolfin
Definition adapt.h:30
dolfin::TensorProductForm
Form TensorProductForm
FIXME: Temporary fix.
Definition LinearTimeDependentProblem.h:34