DOLFIN
DOLFIN C++ interface
|
#include <NonlinearVariationalProblem.h>
Public Member Functions | |
NonlinearVariationalProblem (std::shared_ptr< const Form > F, std::shared_ptr< Function > u, std::vector< std::shared_ptr< const DirichletBC >> bcs, std::shared_ptr< const Form > J=nullptr) | |
void | set_bounds (const Function &lb_func, const Function &ub_func) |
Set the bounds for bound constrained solver. | |
void | set_bounds (std::shared_ptr< const GenericVector > lb, std::shared_ptr< const GenericVector > ub) |
Set the bounds for bound constrained solver. | |
std::shared_ptr< const Form > | residual_form () const |
Return residual form. | |
std::shared_ptr< const Form > | jacobian_form () const |
Return Jacobian form. | |
std::shared_ptr< Function > | solution () |
Return solution variable. | |
std::shared_ptr< const Function > | solution () const |
Return solution variable (const version) | |
std::vector< std::shared_ptr< const DirichletBC > > | bcs () const |
Return boundary conditions. | |
std::shared_ptr< const FunctionSpace > | trial_space () const |
Return trial space. | |
std::shared_ptr< const FunctionSpace > | test_space () const |
Return test space. | |
std::shared_ptr< const GenericVector > | lower_bound () const |
Return lower bound. | |
std::shared_ptr< const GenericVector > | upper_bound () const |
Return upper bound. | |
bool | has_jacobian () const |
Check whether Jacobian has been defined. | |
bool | has_lower_bound () const |
Check whether lower bound has been defined. | |
bool | has_upper_bound () const |
Check whether upper bound have has defined. | |
Public Member Functions inherited from dolfin::Hierarchical< NonlinearVariationalProblem > | |
Hierarchical (NonlinearVariationalProblem &self) | |
Constructor. | |
virtual | ~Hierarchical () |
Destructor. | |
std::size_t | depth () const |
bool | has_parent () const |
bool | has_child () const |
NonlinearVariationalProblem & | parent () |
const NonlinearVariationalProblem & | parent () const |
Return parent in hierarchy (const version). | |
std::shared_ptr< NonlinearVariationalProblem > | parent_shared_ptr () |
std::shared_ptr< const NonlinearVariationalProblem > | parent_shared_ptr () const |
Return shared pointer to parent (const version). | |
NonlinearVariationalProblem & | child () |
const NonlinearVariationalProblem & | child () const |
Return child in hierarchy (const version). | |
std::shared_ptr< NonlinearVariationalProblem > | child_shared_ptr () |
std::shared_ptr< const NonlinearVariationalProblem > | child_shared_ptr () const |
Return shared pointer to child (const version). | |
NonlinearVariationalProblem & | root_node () |
const NonlinearVariationalProblem & | root_node () const |
Return root node object in hierarchy (const version). | |
std::shared_ptr< NonlinearVariationalProblem > | root_node_shared_ptr () |
std::shared_ptr< const NonlinearVariationalProblem > | root_node_shared_ptr () const |
Return shared pointer to root node object in hierarchy (const version). | |
NonlinearVariationalProblem & | leaf_node () |
const NonlinearVariationalProblem & | leaf_node () const |
Return leaf node object in hierarchy (const version). | |
std::shared_ptr< NonlinearVariationalProblem > | leaf_node_shared_ptr () |
std::shared_ptr< const NonlinearVariationalProblem > | leaf_node_shared_ptr () const |
Return shared pointer to leaf node object in hierarchy (const version). | |
void | set_parent (std::shared_ptr< NonlinearVariationalProblem > parent) |
Set parent. | |
void | clear_child () |
Clear child. | |
void | set_child (std::shared_ptr< NonlinearVariationalProblem > child) |
Set child. | |
const Hierarchical & | operator= (const Hierarchical &hierarchical) |
Assignment operator. | |
void | _debug () const |
Function useful for debugging the hierarchy. | |
This class represents a nonlinear variational problem:
Find u in V such that
F(u; v) = 0 for all v in V^,
where V is the trial space and V^ is the test space.
NonlinearVariationalProblem::NonlinearVariationalProblem | ( | std::shared_ptr< const Form > | F, |
std::shared_ptr< Function > | u, | ||
std::vector< std::shared_ptr< const DirichletBC >> | bcs, | ||
std::shared_ptr< const Form > | J = nullptr |
||
) |
Create nonlinear variational problem, shared pointer version. The Jacobian form is specified which allows the use of a nonlinear solver that relies on the Jacobian (using Newton's method).