1 #ifndef __POD_BASIS_ONLINE__     2 #define __POD_BASIS_ONLINE__     4 #include <deal.II/base/conditional_ostream.h>     5 #include <deal.II/lac/full_matrix.h>     6 #include <deal.II/lac/la_parallel_vector.h>     7 #include <deal.II/lac/trilinos_sparse_matrix.h>     8 #include <deal.II/lac/vector_operation.h>     9 #include <deal.II/numerics/vector_tools.h>    11 #include <eigen/Eigen/Dense>    13 #include "dg/dg_base.hpp"    14 #include "parameters/all_parameters.h"    15 #include "pod_basis_base.h"    18 namespace ProperOrthogonalDecomposition {
    19 using Eigen::MatrixXd;
    20 using Eigen::VectorXd;
    28     explicit OnlinePOD(std::shared_ptr<dealii::TrilinosWrappers::SparseMatrix> _system_matrix);
    31     std::shared_ptr<dealii::TrilinosWrappers::SparseMatrix> 
getPODBasis() 
override;
    40     void addSnapshot(dealii::LinearAlgebra::distributed::Vector<double> snapshot);
    46     std::shared_ptr<dealii::TrilinosWrappers::SparseMatrix> 
basis;
    66     dealii::ConditionalOStream 
pcout;
 Class for Online Proper Orthogonal Decomposition basis. This class takes snapshots on the fly and com...
dealii::LinearAlgebra::ReadWriteVector< double > getReferenceState() override
Function to get POD reference state. 
std::shared_ptr< dealii::TrilinosWrappers::SparseMatrix > getPODBasis() override
Function to get POD basis for all derived classes. 
dealii::LinearAlgebra::ReadWriteVector< double > referenceState
Reference state. 
void addSnapshot(dealii::LinearAlgebra::distributed::Vector< double > snapshot)
Add snapshot. 
Files for the baseline physics. 
const MPI_Comm mpi_communicator
MPI communicator. 
MatrixXd getSnapshotMatrix() override
Function to get snapshot matrix used to build POD basis. 
OnlinePOD(std::shared_ptr< dealii::TrilinosWrappers::SparseMatrix > _system_matrix)
Constructor. 
std::shared_ptr< dealii::TrilinosWrappers::SparseMatrix > system_matrix
For sparsity pattern of system matrix. 
std::shared_ptr< dealii::TrilinosWrappers::SparseMatrix > basis
POD basis. 
dealii::LAPACKFullMatrix< double > dealiiSnapshotMatrix
LAPACK matrix of snapshots for nice printing. 
MatrixXd snapshotMatrix
Matrix containing snapshots. 
const int mpi_rank
MPI rank. 
dealii::ConditionalOStream pcout
ConditionalOStream. 
void computeBasis()
Compute new POD basis from snapshots.