Combine local solver and global information for eigenvalue problems with shifted inverse approach.
More...
#include <shifted_inverse_eigenvalue.hxx>
|
| ShiftedInverseEigenvalue (const typename TopologyT::constructor_value_type &construct_topo, const typename GeometryT::constructor_value_type &construct_geom, const typename LocalSolverT::constructor_value_type &construct_loc_sol) |
| Abstract problem constructor. More...
|
|
| ShiftedInverseEigenvalue (const typename TopologyT::constructor_value_type &construct_topo, const typename LocalSolverT::constructor_value_type &construct_loc_sol) |
| Abstract problem constructor. More...
|
|
| ShiftedInverseEigenvalue (const typename TopologyT::constructor_value_type &construct_topo) |
| Abstract problem constructor. More...
|
|
template<typename hyNode_index_t = dof_index_t> |
std::vector< unsigned int > | dirichlet_indices () |
| Return indices of Dirichlet degrees of freedom. More...
|
|
template<typename hyNode_index_t = dof_index_t> |
LargeVecT | trace_to_flux (const LargeVecT &x_vec, const dof_value_t sigma=0.) |
| Evaluate condensed matrix-vector product. More...
|
|
dof_index_t | size_of_system () const |
| Determine size of condensed system for the skeletal unknowns. More...
|
|
std::string | plot_option (const std::string &option, std::string value="") |
| Set plot option and return old plot option. More...
|
|
void | plot_solution (const std::vector< dof_value_t > &lambda, const dof_value_t time=0.) |
| Plot solution in vtu format. More...
|
|
unsigned int | get_refinement () |
| Return refinement level. More...
|
|
void | set_refinement (unsigned int level) |
| Set refinement level. More...
|
|
|
using | dof_value_t = typename LargeVecT::value_type |
| Floating type is determined by floating type of large vector's entries. More...
|
|
template<class TopologyT, class GeometryT, class NodeDescriptorT, class LocalSolverT, typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
class GlobalLoop::ShiftedInverseEigenvalue< TopologyT, GeometryT, NodeDescriptorT, LocalSolverT, LargeVecT, dof_index_t >
Combine local solver and global information for eigenvalue problems with shifted inverse approach.
- Template Parameters
-
TopologyT | Class type containing topological information. |
GeometryT | Class type containing geometrical information. |
NodeDescriptorT | Class type containing the information of nodes of hyperedges. |
LocalSolverT | Class type of the local solver. |
LargeVecT | Clas type of large, global vector. |
dof_index_t | Index type of hyperedges. Default is unsigned int . |
- Authors
- Guido Kanschat, Heidelberg University, 2019–2020.
-
Andreas Rupp, Heidelberg University, 2019–2020.
◆ dof_value_t
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
Floating type is determined by floating type of large vector's entries.
◆ ShiftedInverseEigenvalue() [1/3]
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
GlobalLoop::ShiftedInverseEigenvalue< TopologyT, GeometryT, NodeDescriptorT, LocalSolverT, LargeVecT, dof_index_t >::ShiftedInverseEigenvalue |
( |
const typename TopologyT::constructor_value_type & |
construct_topo, |
|
|
const typename GeometryT::constructor_value_type & |
construct_geom, |
|
|
const typename LocalSolverT::constructor_value_type & |
construct_loc_sol |
|
) |
| |
|
inline |
Abstract problem constructor.
Constructor for class containing a HyperGraph and a local solver that solve a PDE on a hyperedge.
- Parameters
-
construct_topo | Information to construct a topology. |
construct_geom | Information to construct a geometry. |
construct_loc_sol | Information to construct a local solver. |
◆ ShiftedInverseEigenvalue() [2/3]
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
Abstract problem constructor.
Constructor for class containing a HyperGraph and a local solver that solve a PDE on a hyperedge.
- Parameters
-
construct_topo | Information to construct a topology. |
construct_loc_sol | Information to construct a local solver. |
◆ ShiftedInverseEigenvalue() [3/3]
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
Abstract problem constructor.
Constructor for class containing a HyperGraph and a local solver that solve a PDE on a hyperedge.
- Parameters
-
construct_topo | Information to construct a topology. |
◆ dirichlet_indices()
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
template<typename hyNode_index_t = dof_index_t>
Return indices of Dirichlet degrees of freedom.
- Template Parameters
-
hyNode_index_t | Typename of the index type for hypernodes. |
- Return values
-
dirichlet_indices_ | Vector containing all dirichlet dof indices. |
◆ get_refinement()
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
◆ HAS_MEMBER_FUNCTION()
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
Prepare struct to check for function to exist (cf. compile_time_tricks.hxx).
◆ plot_option()
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
std::string GlobalLoop::ShiftedInverseEigenvalue< TopologyT, GeometryT, NodeDescriptorT, LocalSolverT, LargeVecT, dof_index_t >::plot_option |
( |
const std::string & |
option, |
|
|
std::string |
value = "" |
|
) |
| |
|
inline |
Set plot option and return old plot option.
Function to set and / or read the current plot option.
- Parameters
-
option | A std::string containing the plot option to be considered. |
value | A std::string containing the new value of the considered option. If empty, the old value is kept. |
- Return values
-
opt_value | A std::string containing the value of the plot option. |
◆ plot_solution()
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
Plot solution in vtu format.
Function that plots the solution of the problem to a predefined file.
- Parameters
-
lambda | A vector of unknowns containing the data vector. |
time | Time at which analytic functions are evaluated. |
- Return values
-
file | A file in the output directory. |
◆ set_refinement()
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
◆ size_of_system()
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
Determine size of condensed system for the skeletal unknowns.
Function that returns the size \(n\) of the \(n \times n\) linear, sparse system \(Ax = b\) that is solved by the program in a matrix-free fashion.
This function is needed to define a LinearOperator
from Python's scipy.sparse.linalg
package which can be used to define iterative solvers for sparse systems.
- Return values
-
n | Size of condensed global system of equations. |
◆ trace_to_flux()
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
template<typename hyNode_index_t = dof_index_t>
Evaluate condensed matrix-vector product.
Evaluate \( (A - \sigma M) x = y\).
- Parameters
-
x_vec | A vector containing the input vector \(x\). |
sigma | Approximation to eigenvalue / shifting parameter. |
- Return values
-
y_vec | A vector containing the product \(y = Ax\). |
◆ dirichlet_indices_
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
Vector containing the indices of Dirichlet type nodes.
◆ hyper_graph_
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
HDGHyperGraph<LocalSolverT::n_glob_dofs_per_node(), TopologyT, GeometryT, NodeDescriptorT, typename LocalSolverT::data_type> GlobalLoop::ShiftedInverseEigenvalue< TopologyT, GeometryT, NodeDescriptorT, LocalSolverT, LargeVecT, dof_index_t >::hyper_graph_ |
|
private |
Instantiation of a hypergraph.
◆ local_solver_
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
Instantiation of a local solver.
◆ plot_options
template<class TopologyT , class GeometryT , class NodeDescriptorT , class LocalSolverT , typename LargeVecT = std::vector<double>, typename dof_index_t = unsigned int>
Struct encoding the options for plotting.
The documentation for this class was generated from the following file: