Commit 33aa4dda authored by Spencer Sherwin's avatar Spencer Sherwin

Merge branch 'feature/Womersley' into 'master'

Feature/womersley: Pre-calculate Time invariant portion of Womersley Solution

See merge request nektar/nektar!814
parents 43eb5377 71291b23
......@@ -86,6 +86,7 @@ v5.0.0
- Replace steady-state check based on difference of norms by check based on
norm of the difference, to be consistent with the compressible solver (!832)
- Updated SVV to allow for the DGKernel extension (!851)
- Pre-calculate Time invariant portion of Womersley Solution (!814)
**CompressibleFlowSolver**
- Add 3D regression tests (!567)
......
......@@ -42,6 +42,7 @@
#include <LibUtilities/BasicUtils/SessionReader.h>
#include <IncNavierStokesSolver/EquationSystems/Extrapolate.h>
#include <SolverUtils/Forcing/Forcing.h>
#include <complex>
namespace Nektar
{
......@@ -97,6 +98,8 @@ namespace Nektar
};
typedef std::complex<double> NekComplexDouble;
struct WomersleyParams
{
WomersleyParams(int dim)
......@@ -108,18 +111,21 @@ namespace Nektar
virtual ~WomersleyParams()
{};
/// Real and imaginary velocity comp. of wom
std::vector<NekDouble> m_wom_vel_r;
std::vector<NekDouble> m_wom_vel_i;
// Real and imaginary velocity comp. of wom
std::vector<NekComplexDouble> m_wom_vel;
/// Womersley BC constants
// Womersley BC constants
NekDouble m_radius;
NekDouble m_period;
Array<OneD, NekDouble> m_axisnormal;
// currently this needs to be the point in the middle of the
// axis but shoudl be generalised to be any point on the axis
// axis but should be generalised to be any point on the axis
Array<OneD, NekDouble> m_axispoint;
// poiseuille flow and fourier coefficients
Array<OneD, Array<OneD, NekDouble> > m_poiseuille;
Array<OneD, Array<OneD, Array<OneD, NekComplexDouble> > > m_zvel;
};
typedef std::shared_ptr<WomersleyParams> WomersleyParamsSharedPtr;
......@@ -217,10 +223,10 @@ namespace Nektar
void SetWomersleyBoundary(const int fldid, const int bndid);
/// Set Up Womersley details
void SetUpWomersley(const int bndid, std::string womstr);
void SetUpWomersley(const int fldid, const int bndid, std::string womstr);
/// Womersley parameters if required
std::map<int,WomersleyParamsSharedPtr> m_womersleyParams;
std::map<int, std::map<int,WomersleyParamsSharedPtr> > m_womersleyParams;
virtual MultiRegions::ExpListSharedPtr v_GetPressure()
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment