Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Nektar
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
84
Issues
84
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
44
Merge Requests
44
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Test Cases
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nektar
Nektar
Commits
8f1f3842
Commit
8f1f3842
authored
Feb 26, 2018
by
David Moxey
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'upstream/master' into feature/parseutils-simplify
parents
75cb1ef8
aac80c9a
Changes
123
Hide whitespace changes
Inline
Side-by-side
Showing
123 changed files
with
3698 additions
and
1573 deletions
+3698
-1573
CHANGELOG.md
CHANGELOG.md
+14
-4
cmake/ThirdPartyPETSc.cmake
cmake/ThirdPartyPETSc.cmake
+7
-8
docs/developer-guide
docs/developer-guide
+1
-1
docs/user-guide/installation/source.tex
docs/user-guide/installation/source.tex
+1
-1
docs/user-guide/solvers/compressible-flow.tex
docs/user-guide/solvers/compressible-flow.tex
+10
-0
library/Demos/MultiRegions/Tests/Helmholtz3D_CG_Prism_iter_ml_par3.tst
.../MultiRegions/Tests/Helmholtz3D_CG_Prism_iter_ml_par3.tst
+1
-1
library/FieldUtils/InputModules/InputPts.cpp
library/FieldUtils/InputModules/InputPts.cpp
+2
-2
library/FieldUtils/ProcessModules/ProcessHomogeneousPlane.cpp
...ary/FieldUtils/ProcessModules/ProcessHomogeneousPlane.cpp
+1
-0
library/LibUtilities/BasicUtils/FieldIOHdf5.cpp
library/LibUtilities/BasicUtils/FieldIOHdf5.cpp
+1
-1
library/LibUtilities/CMakeLists.txt
library/LibUtilities/CMakeLists.txt
+1
-1
library/MultiRegions/CMakeLists.txt
library/MultiRegions/CMakeLists.txt
+1
-1
library/NekMeshUtils/CADSystem/CFI/CADSystemCFI.cpp
library/NekMeshUtils/CADSystem/CFI/CADSystemCFI.cpp
+62
-8
library/NekMeshUtils/Module/Module.cpp
library/NekMeshUtils/Module/Module.cpp
+1
-1
library/NekMeshUtils/SurfaceMeshing/HOSurfaceMesh.cpp
library/NekMeshUtils/SurfaceMeshing/HOSurfaceMesh.cpp
+15
-0
library/SolverUtils/CMakeLists.txt
library/SolverUtils/CMakeLists.txt
+0
-2
library/SolverUtils/Core/SessionFunction.cpp
library/SolverUtils/Core/SessionFunction.cpp
+9
-1
library/SolverUtils/Diffusion/DiffusionLDGNS.cpp
library/SolverUtils/Diffusion/DiffusionLDGNS.cpp
+0
-643
library/SolverUtils/Diffusion/DiffusionLDGNS.h
library/SolverUtils/Diffusion/DiffusionLDGNS.h
+0
-134
library/SolverUtils/RiemannSolvers/RiemannSolver.cpp
library/SolverUtils/RiemannSolvers/RiemannSolver.cpp
+3
-2
library/SolverUtils/RiemannSolvers/RiemannSolver.h
library/SolverUtils/RiemannSolvers/RiemannSolver.h
+5
-2
library/SolverUtils/RiemannSolvers/UpwindLDGSolver.cpp
library/SolverUtils/RiemannSolvers/UpwindLDGSolver.cpp
+3
-2
library/SolverUtils/RiemannSolvers/UpwindLDGSolver.h
library/SolverUtils/RiemannSolvers/UpwindLDGSolver.h
+5
-3
library/SolverUtils/RiemannSolvers/UpwindSolver.cpp
library/SolverUtils/RiemannSolvers/UpwindSolver.cpp
+3
-2
library/SolverUtils/RiemannSolvers/UpwindSolver.h
library/SolverUtils/RiemannSolvers/UpwindSolver.h
+5
-3
library/SpatialDomains/HexGeom.cpp
library/SpatialDomains/HexGeom.cpp
+0
-1
library/SpatialDomains/MeshGraphXmlCompressed.cpp
library/SpatialDomains/MeshGraphXmlCompressed.cpp
+1
-1
library/SpatialDomains/MeshPartition.cpp
library/SpatialDomains/MeshPartition.cpp
+6
-5
solvers/ADRSolver/EquationSystems/CFLtester.cpp
solvers/ADRSolver/EquationSystems/CFLtester.cpp
+2
-1
solvers/ADRSolver/EquationSystems/EigenValuesAdvection.cpp
solvers/ADRSolver/EquationSystems/EigenValuesAdvection.cpp
+2
-1
solvers/ADRSolver/EquationSystems/UnsteadyAdvection.cpp
solvers/ADRSolver/EquationSystems/UnsteadyAdvection.cpp
+2
-1
solvers/ADRSolver/EquationSystems/UnsteadyAdvectionDiffusion.cpp
.../ADRSolver/EquationSystems/UnsteadyAdvectionDiffusion.cpp
+2
-2
solvers/ADRSolver/EquationSystems/UnsteadyInviscidBurger.cpp
solvers/ADRSolver/EquationSystems/UnsteadyInviscidBurger.cpp
+1
-1
solvers/ADRSolver/EquationSystems/UnsteadyViscousBurgers.cpp
solvers/ADRSolver/EquationSystems/UnsteadyViscousBurgers.cpp
+1
-1
solvers/APESolver/EquationSystems/APE.cpp
solvers/APESolver/EquationSystems/APE.cpp
+1
-1
solvers/APESolver/RiemannSolvers/APESolver.cpp
solvers/APESolver/RiemannSolvers/APESolver.cpp
+3
-2
solvers/APESolver/RiemannSolvers/APESolver.h
solvers/APESolver/RiemannSolvers/APESolver.h
+2
-1
solvers/APESolver/RiemannSolvers/LaxFriedrichsSolver.cpp
solvers/APESolver/RiemannSolvers/LaxFriedrichsSolver.cpp
+3
-2
solvers/APESolver/RiemannSolvers/LaxFriedrichsSolver.h
solvers/APESolver/RiemannSolvers/LaxFriedrichsSolver.h
+5
-3
solvers/APESolver/RiemannSolvers/UpwindSolver.cpp
solvers/APESolver/RiemannSolvers/UpwindSolver.cpp
+3
-2
solvers/APESolver/RiemannSolvers/UpwindSolver.h
solvers/APESolver/RiemannSolvers/UpwindSolver.h
+5
-3
solvers/CompressibleFlowSolver/ArtificialDiffusion/SmoothShockCapture.cpp
...ibleFlowSolver/ArtificialDiffusion/SmoothShockCapture.cpp
+2
-5
solvers/CompressibleFlowSolver/BoundaryConditions/PressureInflowFileBC.cpp
...bleFlowSolver/BoundaryConditions/PressureInflowFileBC.cpp
+9
-5
solvers/CompressibleFlowSolver/BoundaryConditions/PressureMachTemperatureBC.cpp
...owSolver/BoundaryConditions/PressureMachTemperatureBC.cpp
+147
-0
solvers/CompressibleFlowSolver/BoundaryConditions/PressureMachTemperatureBC.h
...FlowSolver/BoundaryConditions/PressureMachTemperatureBC.h
+99
-0
solvers/CompressibleFlowSolver/BoundaryConditions/PressureOutflowBC.cpp
...ssibleFlowSolver/BoundaryConditions/PressureOutflowBC.cpp
+8
-8
solvers/CompressibleFlowSolver/BoundaryConditions/PressureOutflowFileBC.cpp
...leFlowSolver/BoundaryConditions/PressureOutflowFileBC.cpp
+7
-13
solvers/CompressibleFlowSolver/BoundaryConditions/PressureOutflowNonReflectiveBC.cpp
...ver/BoundaryConditions/PressureOutflowNonReflectiveBC.cpp
+8
-8
solvers/CompressibleFlowSolver/BoundaryConditions/RiemannInvariantBC.cpp
...sibleFlowSolver/BoundaryConditions/RiemannInvariantBC.cpp
+1
-1
solvers/CompressibleFlowSolver/BoundaryConditions/StagnationInflowBC.cpp
...sibleFlowSolver/BoundaryConditions/StagnationInflowBC.cpp
+1
-3
solvers/CompressibleFlowSolver/CMakeLists.txt
solvers/CompressibleFlowSolver/CMakeLists.txt
+11
-3
solvers/CompressibleFlowSolver/Diffusion/DiffusionLDGNS.cpp
solvers/CompressibleFlowSolver/Diffusion/DiffusionLDGNS.cpp
+631
-0
solvers/CompressibleFlowSolver/Diffusion/DiffusionLDGNS.h
solvers/CompressibleFlowSolver/Diffusion/DiffusionLDGNS.h
+129
-0
solvers/CompressibleFlowSolver/EquationSystems/CompressibleFlowSystem.cpp
...ibleFlowSolver/EquationSystems/CompressibleFlowSystem.cpp
+19
-62
solvers/CompressibleFlowSolver/EquationSystems/CompressibleFlowSystem.h
...ssibleFlowSolver/EquationSystems/CompressibleFlowSystem.h
+0
-8
solvers/CompressibleFlowSolver/EquationSystems/NavierStokesCFE.cpp
...ompressibleFlowSolver/EquationSystems/NavierStokesCFE.cpp
+28
-6
solvers/CompressibleFlowSolver/EquationSystems/NavierStokesCFE.h
.../CompressibleFlowSolver/EquationSystems/NavierStokesCFE.h
+6
-0
solvers/CompressibleFlowSolver/Misc/EquationOfState.cpp
solvers/CompressibleFlowSolver/Misc/EquationOfState.cpp
+114
-0
solvers/CompressibleFlowSolver/Misc/EquationOfState.h
solvers/CompressibleFlowSolver/Misc/EquationOfState.h
+126
-0
solvers/CompressibleFlowSolver/Misc/IdealGasEoS.cpp
solvers/CompressibleFlowSolver/Misc/IdealGasEoS.cpp
+104
-0
solvers/CompressibleFlowSolver/Misc/IdealGasEoS.h
solvers/CompressibleFlowSolver/Misc/IdealGasEoS.h
+101
-0
solvers/CompressibleFlowSolver/Misc/PengRobinsonEoS.cpp
solvers/CompressibleFlowSolver/Misc/PengRobinsonEoS.cpp
+245
-0
solvers/CompressibleFlowSolver/Misc/PengRobinsonEoS.h
solvers/CompressibleFlowSolver/Misc/PengRobinsonEoS.h
+105
-0
solvers/CompressibleFlowSolver/Misc/RedlichKwongEoS.cpp
solvers/CompressibleFlowSolver/Misc/RedlichKwongEoS.cpp
+267
-0
solvers/CompressibleFlowSolver/Misc/RedlichKwongEoS.h
solvers/CompressibleFlowSolver/Misc/RedlichKwongEoS.h
+101
-0
solvers/CompressibleFlowSolver/Misc/VanDerWaalsEoS.cpp
solvers/CompressibleFlowSolver/Misc/VanDerWaalsEoS.cpp
+148
-0
solvers/CompressibleFlowSolver/Misc/VanDerWaalsEoS.h
solvers/CompressibleFlowSolver/Misc/VanDerWaalsEoS.h
+93
-0
solvers/CompressibleFlowSolver/Misc/VariableConverter.cpp
solvers/CompressibleFlowSolver/Misc/VariableConverter.cpp
+323
-323
solvers/CompressibleFlowSolver/Misc/VariableConverter.h
solvers/CompressibleFlowSolver/Misc/VariableConverter.h
+63
-70
solvers/CompressibleFlowSolver/RiemannSolvers/AUSM0Solver.cpp
...ers/CompressibleFlowSolver/RiemannSolvers/AUSM0Solver.cpp
+15
-11
solvers/CompressibleFlowSolver/RiemannSolvers/AUSM0Solver.h
solvers/CompressibleFlowSolver/RiemannSolvers/AUSM0Solver.h
+4
-3
solvers/CompressibleFlowSolver/RiemannSolvers/AUSM1Solver.cpp
...ers/CompressibleFlowSolver/RiemannSolvers/AUSM1Solver.cpp
+15
-11
solvers/CompressibleFlowSolver/RiemannSolvers/AUSM1Solver.h
solvers/CompressibleFlowSolver/RiemannSolvers/AUSM1Solver.h
+4
-3
solvers/CompressibleFlowSolver/RiemannSolvers/AUSM2Solver.cpp
...ers/CompressibleFlowSolver/RiemannSolvers/AUSM2Solver.cpp
+15
-11
solvers/CompressibleFlowSolver/RiemannSolvers/AUSM2Solver.h
solvers/CompressibleFlowSolver/RiemannSolvers/AUSM2Solver.h
+5
-3
solvers/CompressibleFlowSolver/RiemannSolvers/AUSM3Solver.cpp
...ers/CompressibleFlowSolver/RiemannSolvers/AUSM3Solver.cpp
+15
-11
solvers/CompressibleFlowSolver/RiemannSolvers/AUSM3Solver.h
solvers/CompressibleFlowSolver/RiemannSolvers/AUSM3Solver.h
+4
-3
solvers/CompressibleFlowSolver/RiemannSolvers/AverageSolver.cpp
...s/CompressibleFlowSolver/RiemannSolvers/AverageSolver.cpp
+10
-6
solvers/CompressibleFlowSolver/RiemannSolvers/AverageSolver.h
...ers/CompressibleFlowSolver/RiemannSolvers/AverageSolver.h
+4
-3
solvers/CompressibleFlowSolver/RiemannSolvers/CompressibleSolver.cpp
...pressibleFlowSolver/RiemannSolvers/CompressibleSolver.cpp
+84
-2
solvers/CompressibleFlowSolver/RiemannSolvers/CompressibleSolver.h
...ompressibleFlowSolver/RiemannSolvers/CompressibleSolver.h
+11
-2
solvers/CompressibleFlowSolver/RiemannSolvers/ExactSolverToro.cpp
...CompressibleFlowSolver/RiemannSolvers/ExactSolverToro.cpp
+3
-1
solvers/CompressibleFlowSolver/RiemannSolvers/ExactSolverToro.h
...s/CompressibleFlowSolver/RiemannSolvers/ExactSolverToro.h
+5
-3
solvers/CompressibleFlowSolver/RiemannSolvers/HLLCSolver.cpp
solvers/CompressibleFlowSolver/RiemannSolvers/HLLCSolver.cpp
+49
-34
solvers/CompressibleFlowSolver/RiemannSolvers/HLLCSolver.h
solvers/CompressibleFlowSolver/RiemannSolvers/HLLCSolver.h
+4
-3
solvers/CompressibleFlowSolver/RiemannSolvers/HLLSolver.cpp
solvers/CompressibleFlowSolver/RiemannSolvers/HLLSolver.cpp
+26
-18
solvers/CompressibleFlowSolver/RiemannSolvers/HLLSolver.h
solvers/CompressibleFlowSolver/RiemannSolvers/HLLSolver.h
+4
-3
solvers/CompressibleFlowSolver/RiemannSolvers/LaxFriedrichsSolver.cpp
...ressibleFlowSolver/RiemannSolvers/LaxFriedrichsSolver.cpp
+27
-21
solvers/CompressibleFlowSolver/RiemannSolvers/LaxFriedrichsSolver.h
...mpressibleFlowSolver/RiemannSolvers/LaxFriedrichsSolver.h
+5
-3
solvers/CompressibleFlowSolver/RiemannSolvers/RoeSolver.cpp
solvers/CompressibleFlowSolver/RiemannSolvers/RoeSolver.cpp
+2
-1
solvers/CompressibleFlowSolver/RiemannSolvers/RoeSolver.h
solvers/CompressibleFlowSolver/RiemannSolvers/RoeSolver.h
+4
-3
solvers/CompressibleFlowSolver/Tests/Rarefaction_vanderWaals.tst
.../CompressibleFlowSolver/Tests/Rarefaction_vanderWaals.tst
+24
-0
solvers/CompressibleFlowSolver/Tests/Rarefaction_vanderWaals.xml
.../CompressibleFlowSolver/Tests/Rarefaction_vanderWaals.xml
+128
-0
solvers/ImageWarpingSolver/EquationSystems/ImageWarpingSystem.cpp
...ImageWarpingSolver/EquationSystems/ImageWarpingSystem.cpp
+1
-1
solvers/PulseWaveSolver/EquationSystems/PulseWavePropagation.cpp
.../PulseWaveSolver/EquationSystems/PulseWavePropagation.cpp
+1
-1
solvers/PulseWaveSolver/RiemannSolvers/UpwindPulseSolver.cpp
solvers/PulseWaveSolver/RiemannSolvers/UpwindPulseSolver.cpp
+3
-1
solvers/PulseWaveSolver/RiemannSolvers/UpwindPulseSolver.h
solvers/PulseWaveSolver/RiemannSolvers/UpwindPulseSolver.h
+4
-3
solvers/ShallowWaterSolver/EquationSystems/LinearSWE.cpp
solvers/ShallowWaterSolver/EquationSystems/LinearSWE.cpp
+1
-1
solvers/ShallowWaterSolver/EquationSystems/NonlinearPeregrine.cpp
...ShallowWaterSolver/EquationSystems/NonlinearPeregrine.cpp
+1
-1
solvers/ShallowWaterSolver/EquationSystems/NonlinearSWE.cpp
solvers/ShallowWaterSolver/EquationSystems/NonlinearSWE.cpp
+1
-1
solvers/ShallowWaterSolver/RiemannSolvers/AverageSolver.cpp
solvers/ShallowWaterSolver/RiemannSolvers/AverageSolver.cpp
+3
-1
solvers/ShallowWaterSolver/RiemannSolvers/AverageSolver.h
solvers/ShallowWaterSolver/RiemannSolvers/AverageSolver.h
+4
-3
solvers/ShallowWaterSolver/RiemannSolvers/HLLCSolver.cpp
solvers/ShallowWaterSolver/RiemannSolvers/HLLCSolver.cpp
+2
-1
solvers/ShallowWaterSolver/RiemannSolvers/HLLCSolver.h
solvers/ShallowWaterSolver/RiemannSolvers/HLLCSolver.h
+4
-3
solvers/ShallowWaterSolver/RiemannSolvers/HLLSolver.cpp
solvers/ShallowWaterSolver/RiemannSolvers/HLLSolver.cpp
+3
-1
solvers/ShallowWaterSolver/RiemannSolvers/HLLSolver.h
solvers/ShallowWaterSolver/RiemannSolvers/HLLSolver.h
+4
-3
solvers/ShallowWaterSolver/RiemannSolvers/LaxFriedrichsSolver.cpp
...ShallowWaterSolver/RiemannSolvers/LaxFriedrichsSolver.cpp
+3
-1
solvers/ShallowWaterSolver/RiemannSolvers/LaxFriedrichsSolver.h
...s/ShallowWaterSolver/RiemannSolvers/LaxFriedrichsSolver.h
+5
-3
solvers/ShallowWaterSolver/RiemannSolvers/LinearAverageSolver.cpp
...ShallowWaterSolver/RiemannSolvers/LinearAverageSolver.cpp
+3
-1
solvers/ShallowWaterSolver/RiemannSolvers/LinearAverageSolver.h
...s/ShallowWaterSolver/RiemannSolvers/LinearAverageSolver.h
+5
-3
solvers/ShallowWaterSolver/RiemannSolvers/LinearHLLSolver.cpp
...ers/ShallowWaterSolver/RiemannSolvers/LinearHLLSolver.cpp
+3
-1
solvers/ShallowWaterSolver/RiemannSolvers/LinearHLLSolver.h
solvers/ShallowWaterSolver/RiemannSolvers/LinearHLLSolver.h
+4
-3
solvers/ShallowWaterSolver/RiemannSolvers/LinearSWESolver.cpp
...ers/ShallowWaterSolver/RiemannSolvers/LinearSWESolver.cpp
+3
-2
solvers/ShallowWaterSolver/RiemannSolvers/LinearSWESolver.h
solvers/ShallowWaterSolver/RiemannSolvers/LinearSWESolver.h
+1
-1
solvers/ShallowWaterSolver/RiemannSolvers/NoSolver.cpp
solvers/ShallowWaterSolver/RiemannSolvers/NoSolver.cpp
+2
-1
solvers/ShallowWaterSolver/RiemannSolvers/NoSolver.h
solvers/ShallowWaterSolver/RiemannSolvers/NoSolver.h
+4
-3
solvers/ShallowWaterSolver/RiemannSolvers/NonlinearSWESolver.cpp
.../ShallowWaterSolver/RiemannSolvers/NonlinearSWESolver.cpp
+3
-2
solvers/ShallowWaterSolver/RiemannSolvers/NonlinearSWESolver.h
...rs/ShallowWaterSolver/RiemannSolvers/NonlinearSWESolver.h
+2
-1
utilities/FieldConvert/CMakeLists.txt
utilities/FieldConvert/CMakeLists.txt
+2
-0
utilities/FieldConvert/Tests/chan3D_csvTopts.tst
utilities/FieldConvert/Tests/chan3D_csvTopts.tst
+17
-0
utilities/FieldConvert/Tests/chan3D_ptsTocsv.tst
utilities/FieldConvert/Tests/chan3D_ptsTocsv.tst
+18
-0
utilities/NekMesh/InputModules/InputMCF.cpp
utilities/NekMesh/InputModules/InputMCF.cpp
+4
-0
utilities/NekMesh/OutputModules/OutputGmsh.cpp
utilities/NekMesh/OutputModules/OutputGmsh.cpp
+8
-5
utilities/NekMesh/OutputModules/OutputNekpp.cpp
utilities/NekMesh/OutputModules/OutputNekpp.cpp
+26
-0
No files found.
CHANGELOG.md
View file @
8f1f3842
...
...
@@ -14,7 +14,7 @@ v5.0.0
functionality in FUNCTIONs defined for forcings (!759)
-
Add patch to tinyxml to fix size_t vs int bug (!820)
-
Add ARPACK thirdparty build capabilities (!828)
-
Added native support for csv files in addititon to pts (!760
!835
)
-
Added native support for csv files in addititon to pts (!760
, !835, !906
)
-
Utilize LAPACK_DIR env variable to find the native blas/lapack install (!827)
-
Remove StdExpansion use from MultiRegion (use Expansions instead). (!831)
-
Move steady state check and CFL output from solvers to SolverUtils (!832)
...
...
@@ -34,9 +34,11 @@ v5.0.0
-
Fix mac OSX on buildbots (!876)
-
Fix error from (!826) (!876)
-
Fix minor bug in ARPACK thirdparty build cmake (!874)
-
Switch MeshGraph to use factory pattern and add HDF5 geometry support (!900,
!904)
-
Switch MeshGraph to use factory pattern and add HDF5 geometry support
(!900, !904)
-
Fix bug in MeshPartition.cpp which caused incorrect array access when
WeightPartitions was used in parallel (!923)
**NekMesh**
:
-
Add feature to read basic 2D geo files as CAD (!731)
-
Add periodic boundary condition meshing in 2D (!733)
...
...
@@ -61,6 +63,10 @@ v5.0.0
-
Skip CFI groups of bodies and non-numbered nodes (!891)
-
Add ability to space out 2D BL nodes to better fit local target Delta (!890)
-
Fix automatic peralign call in 2D periodic meshing (!888)
-
Fix BL splitting call from MCF (!910)
-
Support CFI combined lines (!917)
-
Order nodes in Gmsh output (!912)
-
Fix manifold face curvature nodes (!913)
**FieldConvert**
:
-
Add input module for Semtex field files (!777)
...
...
@@ -86,6 +92,7 @@ v5.0.0
-
Allow performing axi-symmetric Euler simulations (!771)
-
Add ability to use an exponential filtering for stabilization with
seg, quad and hex elements (!771, !862)
-
Introduce equations of state to account for real gas effects (!880)
**APESolver:**
-
Added two new boundary conditions to the APE system: RiemannInvariantBC
...
...
@@ -106,6 +113,8 @@ v4.4.2
-
Fix calculation of BLPoints (!892)
-
Fix deadlock in DiffusionLDG (!885)
-
Fix uninitialised coefficients in DirectFull solver (!898)
-
Updated PETSc to 3.7.7 (!916)
-
Fix typcase to an integer which set Lz < 1 to zero when postprocess hdf5 output (!9922)
**NekMesh**
-
Fix missing periodic boundary meshing and boundary layer mesh adjustment
...
...
@@ -115,6 +124,7 @@ v4.4.2
**Documentation**
:
-
Fix sign of the viscous term in the velocity correction scheme equations in
the user guide (!856)
-
Fixed anonymous clone URL (!909)
**FieldConvert**
-
Allow passing input name with trailing separator (!879)
...
...
cmake/ThirdPartyPETSc.cmake
View file @
8f1f3842
...
...
@@ -76,23 +76,22 @@ IF (NEKTAR_USE_PETSC)
ENDIF
()
EXTERNALPROJECT_ADD
(
petsc-3.7.
2
petsc-3.7.
7
DEPENDS
${
PETSC_DEPS
}
PREFIX
${
TPSRC
}
STAMP_DIR
${
TPBUILD
}
/stamp
DOWNLOAD_DIR
${
TPSRC
}
SOURCE_DIR
${
TPBUILD
}
/petsc-3.7.
2
TMP_DIR
${
TPBUILD
}
/petsc-3.7.
2
-tmp
SOURCE_DIR
${
TPBUILD
}
/petsc-3.7.
7
TMP_DIR
${
TPBUILD
}
/petsc-3.7.
7
-tmp
INSTALL_DIR
${
TPDIST
}
BINARY_DIR
${
TPBUILD
}
/petsc-3.7.
2
URL
http://www.nektar.info/thirdparty/petsc-lite-3.7.2
.tar.gz
URL_MD5
"
26c2ff8eaaa9e49aea063f839f5daa7
e"
BINARY_DIR
${
TPBUILD
}
/petsc-3.7.
7
URL
${
TPURL
}
/petsc-lite-3.7.7
.tar.gz
URL_MD5
"
7b476e38cfab4cddb26f73e5ef23538
e"
CONFIGURE_COMMAND
OMPI_FC=
${
CMAKE_Fortran_COMPILER
}
OMPI_CC=
${
CMAKE_C_COMPILER
}
OMPI_CXX=
${
CMAKE_CXX_COMPILER
}
${
PYTHON_EXECUTABLE
}
./configure
./configure
--with-fc=
${
PETSC_Fortran_COMPILER
}
--with-cc=
${
PETSC_C_COMPILER
}
--with-cxx=
${
PETSC_CXX_COMPILER
}
...
...
@@ -121,7 +120,7 @@ IF (NEKTAR_USE_PETSC)
ENDIF
(
NOT PETSC_FOUND
)
SET
(
PETSC_CONFIG_INCLUDE_DIR
${
PETSC_INCLUDES
}
)
INCLUDE_DIRECTORIES
(
${
PETSC_INCLUDES
}
)
ADD_CUSTOM_TARGET
(
petsc-3.7.
2
ALL
)
ADD_CUSTOM_TARGET
(
petsc-3.7.
7
ALL
)
ENDIF
(
THIRDPARTY_BUILD_PETSC
)
ADD_DEFINITIONS
(
-DNEKTAR_USING_PETSC
)
...
...
developer-guide
@
b1461b45
Compare
e128cfaf
...
b1461b45
Subproject commit
e128cfaffbbd37c734a667cdc2a07b6f06291615
Subproject commit
b1461b45abb08c48397fe6d046249703c4f8f160
docs/user-guide/installation/source.tex
View file @
8f1f3842
...
...
@@ -24,7 +24,7 @@ There are two ways to obtain the source code for \nekpp:
public repository. Use this initially if you would like to try using
Nektar++ or make local changes to the code.
\begin{lstlisting}
[style=BashInputStyle]
git clone http
://gitlab.nektar.info/clone
/nektar/nektar.git nektar++
git clone http
s://gitlab.nektar.info
/nektar/nektar.git nektar++
\end{lstlisting}
\item
Using authenticated access. This will allow you to directly contribute
back into the code.
...
...
docs/user-guide/solvers/compressible-flow.tex
View file @
8f1f3842
...
...
@@ -243,6 +243,7 @@ Under this section it is possible to set the solver information.
<I PROPERTY="UpwindType" VALUE="ExactToro" />
<I PROPERTY="ProblemType" VALUE="General" />
<I PROPERTY="ViscosityType" VALUE="Constant" />
<I PROPERTY="EquationOfState" VALUE="IdealGas" />
</SOLVERINFO>
\end{lstlisting}
\begin{itemize}
...
...
@@ -303,6 +304,15 @@ we want to use for the advection operator:
\item
\inltt
{
Constant
}
(Constant viscosity);
\item
\inltt
{
Variable
}
(Variable viscosity through the Sutherland's law.);
\end{itemize}
\item
\inltt
{
EquationOfState
}
allows selecting an equation of state for
accounting for non-ideal gas behaviour:
\begin{itemize}
\item
\inltt
{
IdealGas
}
(default option);
\item
\inltt
{
VanDerWaals
}
(requires additional parameters
\inltt
{
Tcrit
}
and
\inltt
{
Pcrit
}
);
\item
\inltt
{
RedlichKwong
}
(requires additional parameters
\inltt
{
Tcrit
}
and
\inltt
{
Pcrit
}
);
\item
\inltt
{
PengRobinson
}
(requires additional parameters
\inltt
{
Tcrit
}
,
\inltt
{
Pcrit
}
and
\inltt
{
AcentricFactor
}
);
\end{itemize}
\end{itemize}
\subsection*
{
Boundary conditions
}
...
...
library/Demos/MultiRegions/Tests/Helmholtz3D_CG_Prism_iter_ml_par3.tst
View file @
8f1f3842
...
...
@@ -2,7 +2,7 @@
<test>
<description>
Helmholtz 3D CG, prisms, Neumann BCs, iterative ML, Par(3)
</description>
<executable>
Helmholtz3D
</executable>
<parameters>
--use-metis Helmholtz3D_Prism.xml
</parameters>
<parameters>
--use-metis
-I WeightPartitions=Boundary
Helmholtz3D_Prism.xml
</parameters>
<processes>
3
</processes>
<files>
<file
description=
"Session File"
>
Helmholtz3D_Prism.xml
</file>
...
...
library/FieldUtils/InputModules/InputPts.cpp
View file @
8f1f3842
...
...
@@ -86,13 +86,13 @@ void InputPts::Process(po::variables_map &vm)
string
inFile
=
m_config
[
"infile"
].
as
<
string
>
();
// Determine appropriate field input
if
(
m_f
->
m_inputfiles
.
count
(
"
pts
"
)
!=
0
)
if
(
m_f
->
m_inputfiles
.
count
(
"
csv
"
)
!=
0
)
{
LibUtilities
::
CsvIOSharedPtr
csvIO
=
MemoryManager
<
LibUtilities
::
CsvIO
>::
AllocateSharedPtr
(
m_f
->
m_comm
);
csvIO
->
Import
(
inFile
,
m_f
->
m_fieldPts
);
}
else
if
(
m_f
->
m_inputfiles
.
count
(
"
csv
"
)
!=
0
)
else
if
(
m_f
->
m_inputfiles
.
count
(
"
pts
"
)
!=
0
)
{
LibUtilities
::
PtsIOSharedPtr
ptsIO
=
MemoryManager
<
LibUtilities
::
PtsIO
>::
AllocateSharedPtr
(
m_f
->
m_comm
);
...
...
library/FieldUtils/ProcessModules/ProcessHomogeneousPlane.cpp
View file @
8f1f3842
...
...
@@ -151,6 +151,7 @@ void ProcessHomogeneousPlane::Process(po::variables_map &vm)
}
m_f
->
m_session
=
LibUtilities
::
SessionReader
::
CreateInstance
(
argc
,
(
char
**
)
argv
,
files
,
m_f
->
m_comm
->
GetRowComm
());
m_f
->
m_session
->
InitSession
();
}
else
{
...
...
library/LibUtilities/BasicUtils/FieldIOHdf5.cpp
View file @
8f1f3842
...
...
@@ -328,7 +328,7 @@ void FieldIOHdf5::v_Write(const std::string &outFile,
homoLengths
[
f
].
resize
(
nSubFields
);
for
(
int
sf
=
0
;
sf
<
nSubFields
;
++
sf
)
{
uint64_t
len
=
fielddefs
[
f
]
->
m_homogeneousLengths
[
sf
];
NekDouble
len
=
fielddefs
[
f
]
->
m_homogeneousLengths
[
sf
];
hashStream
<<
len
;
homoLengths
[
f
][
sf
]
=
len
;
}
...
...
library/LibUtilities/CMakeLists.txt
View file @
8f1f3842
...
...
@@ -428,7 +428,7 @@ ENDIF()
IF
(
NEKTAR_USE_PETSC
)
TARGET_LINK_LIBRARIES
(
LibUtilities LINK_PRIVATE
${
PETSC_LIBRARIES
}
)
TARGET_LINK_LIBRARIES
(
LibUtilities LINK_PUBLIC
${
CMAKE_DL_LIBS
}
)
ADD_DEPENDENCIES
(
LibUtilities petsc-3.7.
2
)
ADD_DEPENDENCIES
(
LibUtilities petsc-3.7.
7
)
ENDIF
(
NEKTAR_USE_PETSC
)
# HDF5
...
...
library/MultiRegions/CMakeLists.txt
View file @
8f1f3842
...
...
@@ -147,7 +147,7 @@ ENDIF( NEKTAR_USE_MPI )
IF
(
NEKTAR_USE_PETSC
)
TARGET_LINK_LIBRARIES
(
MultiRegions LINK_PRIVATE
${
PETSC_LIBRARIES
}
)
ADD_DEPENDENCIES
(
MultiRegions petsc-3.7.
2
)
ADD_DEPENDENCIES
(
MultiRegions petsc-3.7.
7
)
ENDIF
(
NEKTAR_USE_PETSC
)
INSTALL
(
DIRECTORY ./ DESTINATION
${
NEKTAR_INCLUDE_DIR
}
/MultiRegions COMPONENT dev FILES_MATCHING PATTERN
"*.h"
PATTERN
"*.hpp"
)
...
...
library/NekMeshUtils/CADSystem/CFI/CADSystemCFI.cpp
View file @
8f1f3842
...
...
@@ -187,7 +187,31 @@ bool CADSystemCFI::LoadCAD()
{
vector
<
cfi
::
Oriented
<
cfi
::
TopoEntity
*>>
*
edgeList
=
face
->
getChildList
();
// unrolling combined edges
vector
<
cfi
::
Oriented
<
cfi
::
TopoEntity
*>>
fullEdgeList
;
for
(
it2
=
edgeList
->
begin
();
it2
!=
edgeList
->
end
();
it2
++
)
{
cfi
::
Line
*
edge
=
static_cast
<
cfi
::
Line
*>
(
it2
->
entity
);
if
(
edge
->
getTopoSubtype
()
==
cfi
::
SUBTYPE_COMBINED
)
{
vector
<
cfi
::
Oriented
<
cfi
::
TopoEntity
*>>
*
subEdgeList
=
edge
->
getChildList
();
for
(
it3
=
subEdgeList
->
begin
();
it3
!=
subEdgeList
->
end
();
it3
++
)
{
fullEdgeList
.
push_back
(
*
it3
);
}
}
else
{
fullEdgeList
.
push_back
(
*
it2
);
}
}
for
(
it2
=
fullEdgeList
.
begin
();
it2
!=
fullEdgeList
.
end
();
it2
++
)
{
cfi
::
Oriented
<
cfi
::
TopoEntity
*>
orientatedEdge
=
*
it2
;
cfi
::
Line
*
edge
=
...
...
@@ -311,15 +335,45 @@ void CADSystemCFI::AddSurf(int i, cfi::Face *in)
vector
<
cfi
::
Oriented
<
cfi
::
TopoEntity
*>>
*
edgeList
=
in
->
getChildList
();
// unrolling combined edges
vector
<
cfi
::
Oriented
<
cfi
::
TopoEntity
*>>
fullEdgeList
;
vector
<
cfi
::
Oriented
<
cfi
::
TopoEntity
*>>::
iterator
it2
,
it3
;
for
(
it2
=
edgeList
->
begin
();
it2
!=
edgeList
->
end
();
it2
++
)
{
cfi
::
Line
*
edge
=
static_cast
<
cfi
::
Line
*>
(
it2
->
entity
);
if
(
edge
->
getTopoSubtype
()
==
cfi
::
SUBTYPE_COMBINED
)
{
vector
<
cfi
::
Oriented
<
cfi
::
TopoEntity
*>>
*
subEdgeList
=
edge
->
getChildList
();
for
(
it3
=
subEdgeList
->
begin
();
it3
!=
subEdgeList
->
end
();
it3
++
)
{
fullEdgeList
.
push_back
(
*
it3
);
}
if
(
it2
->
orientation
==
cfi
::
ORIENT_NEGATIVE
)
{
reverse
(
fullEdgeList
.
begin
()
+
fullEdgeList
.
size
()
-
subEdgeList
->
size
(),
fullEdgeList
.
end
());
}
}
else
{
fullEdgeList
.
push_back
(
*
it2
);
}
}
vector
<
EdgeLoopSharedPtr
>
edgeloops
;
int
done
=
0
;
while
(
done
!=
edgeList
->
size
())
while
(
done
!=
fullEdgeList
.
size
())
{
EdgeLoopSharedPtr
edgeloop
=
EdgeLoopSharedPtr
(
new
EdgeLoop
);
string
firstVert
;
vector
<
cfi
::
Oriented
<
cfi
::
TopoEntity
*>>
*
vertList
=
edgeList
->
at
(
done
).
entity
->
getChildList
();
if
(
edgeList
->
at
(
done
).
orientation
==
cfi
::
ORIENT_POSITIVE
)
fullEdgeList
.
at
(
done
).
entity
->
getChildList
();
if
(
fullEdgeList
.
at
(
done
).
orientation
==
cfi
::
ORIENT_POSITIVE
)
{
firstVert
=
vertList
->
at
(
0
).
entity
->
getName
();
edgeloop
->
edgeo
.
push_back
(
CADOrientation
::
eForwards
);
...
...
@@ -331,13 +385,13 @@ void CADSystemCFI::AddSurf(int i, cfi::Face *in)
}
edgeloop
->
edges
.
push_back
(
m_curves
[
nameToCurveId
[
edgeList
->
at
(
done
).
entity
->
getName
()]]);
m_curves
[
nameToCurveId
[
fullEdgeList
.
at
(
done
).
entity
->
getName
()]]);
for
(
done
++
;
done
<
edgeList
->
size
();
done
++
)
for
(
done
++
;
done
<
fullEdgeList
.
size
();
done
++
)
{
bool
end
=
false
;
vertList
=
edgeList
->
at
(
done
).
entity
->
getChildList
();
if
(
edgeList
->
at
(
done
).
orientation
==
cfi
::
ORIENT_POSITIVE
)
vertList
=
fullEdgeList
.
at
(
done
).
entity
->
getChildList
();
if
(
fullEdgeList
.
at
(
done
).
orientation
==
cfi
::
ORIENT_POSITIVE
)
{
if
(
vertList
->
at
(
1
).
entity
->
getName
()
==
firstVert
)
{
...
...
@@ -355,7 +409,7 @@ void CADSystemCFI::AddSurf(int i, cfi::Face *in)
}
edgeloop
->
edges
.
push_back
(
m_curves
[
nameToCurveId
[
edgeList
->
at
(
done
).
entity
->
getName
()]]);
m_curves
[
nameToCurveId
[
fullEdgeList
.
at
(
done
).
entity
->
getName
()]]);
if
(
end
)
{
...
...
library/NekMeshUtils/Module/Module.cpp
View file @
8f1f3842
...
...
@@ -859,7 +859,7 @@ void Module::RegisterConfig(string key, string val)
{
it
->
second
.
value
=
it
->
second
.
defValue
;
}
else
else
{
it
->
second
.
value
=
val
;
}
...
...
library/NekMeshUtils/SurfaceMeshing/HOSurfaceMesh.cpp
View file @
8f1f3842
...
...
@@ -129,12 +129,21 @@ void HOSurfaceMesh::Process()
FaceSharedPtr
f
=
m_mesh
->
m_element
[
2
][
i
]
->
GetFaceLink
();
bool
dumFace
=
false
;
if
(
!
f
)
{
//This uses a fake face to build the high-order info
//in the case of 2D and manifold geometries without having to
//rewrite the 3D code
//important to note that face nodes need to be inserted into the
//volume nodes of the surface element or they will be forgotton
f
=
std
::
shared_ptr
<
Face
>
(
new
Face
(
m_mesh
->
m_element
[
2
][
i
]
->
GetVertexList
(),
vector
<
NodeSharedPtr
>
(),
m_mesh
->
m_element
[
2
][
i
]
->
GetEdgeList
(),
LibUtilities
::
ePolyEvenlySpaced
));
dumFace
=
true
;
}
f
->
m_parentCAD
=
s
;
...
...
@@ -506,6 +515,12 @@ void HOSurfaceMesh::Process()
f
->
m_faceNodes
=
honodes
;
f
->
m_curveType
=
LibUtilities
::
eGaussLobattoLegendre
;
}
if
(
dumFace
)
{
m_mesh
->
m_element
[
2
][
i
]
->
SetVolumeNodes
(
f
->
m_faceNodes
);
m_mesh
->
m_element
[
2
][
i
]
->
SetCurveType
(
f
->
m_curveType
);
}
}
if
(
m_mesh
->
m_verbose
)
...
...
library/SolverUtils/CMakeLists.txt
View file @
8f1f3842
...
...
@@ -10,7 +10,6 @@ SET(SOLVER_UTILS_SOURCES
Diffusion/Diffusion.cpp
Diffusion/Diffusion3DHomogeneous1D.cpp
Diffusion/DiffusionLDG.cpp
Diffusion/DiffusionLDGNS.cpp
Diffusion/DiffusionLFR.cpp
Diffusion/DiffusionLFRNS.cpp
Driver.cpp
...
...
@@ -55,7 +54,6 @@ SET(SOLVER_UTILS_HEADERS
Diffusion/Diffusion.h
Diffusion/Diffusion3DHomogeneous1D.h
Diffusion/DiffusionLDG.h
Diffusion/DiffusionLDGNS.h
Diffusion/DiffusionLFR.h
Diffusion/DiffusionLFRNS.h
Driver.h
...
...
library/SolverUtils/Core/SessionFunction.cpp
View file @
8f1f3842
...
...
@@ -188,6 +188,10 @@ void SessionFunction::Evaluate(std::string pFieldName,
EvaluateFld
(
pFieldName
,
pArray
,
pTime
,
domain
);
}
}
else
{
ASSERTL0
(
false
,
"unknown eFunctionType"
);
}
if
(
m_toCache
)
{
...
...
@@ -217,12 +221,16 @@ std::string SessionFunction::Describe(std::string pFieldName, const int domain)
retVal
=
ffunc
->
GetExpression
();
}
else
if
(
vType
==
LibUtilities
::
eFunctionTypeFile
||
LibUtilities
::
eFunctionTypeTransientFile
)
vType
==
LibUtilities
::
eFunctionTypeTransientFile
)
{
std
::
string
filename
=
m_session
->
GetFunctionFilename
(
m_name
,
pFieldName
,
domain
);
retVal
=
"from file "
+
filename
;
}
else
{
ASSERTL0
(
false
,
"unknown eFunctionType"
);
}
return
retVal
;
}
...
...
library/SolverUtils/Diffusion/DiffusionLDGNS.cpp
deleted
100644 → 0
View file @
75cb1ef8
///////////////////////////////////////////////////////////////////////////////
//
// File: DiffusionLDGNS.cpp
//
// For more information, please see: http://www.nektar.info
//
// The MIT License
//
// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
// Department of Aeronautics, Imperial College London (UK), and Scientific
// Computing and Imaging Institute, University of Utah (USA).
//
// License for the specific language governing rights and limitations under
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
// Description: LDGNS diffusion class.
//
///////////////////////////////////////////////////////////////////////////////
#include <SolverUtils/Diffusion/DiffusionLDGNS.h>
#include <iostream>
#include <iomanip>
#include <LocalRegions/Expansion2D.h>
namespace
Nektar
{
namespace
SolverUtils
{
std
::
string
DiffusionLDGNS
::
type
=
GetDiffusionFactory
().
RegisterCreatorFunction
(
"LDGNS"
,
DiffusionLDGNS
::
create
);
DiffusionLDGNS
::
DiffusionLDGNS
()
{
}
void
DiffusionLDGNS
::
v_InitObject
(
LibUtilities
::
SessionReaderSharedPtr
pSession
,
Array
<
OneD
,
MultiRegions
::
ExpListSharedPtr
>
pFields
)
{
m_session
=
pSession
;
m_session
->
LoadParameter
(
"Gamma"
,
m_gamma
,
1.4
);
m_session
->
LoadParameter
(
"GasConstant"
,
m_gasConstant
,
287.058
);
m_session
->
LoadParameter
(
"Twall"
,
m_Twall
,
300.15
);
m_session
->
LoadSolverInfo
(
"ViscosityType"
,
m_ViscosityType
,
"Constant"
);
m_session
->
LoadParameter
(
"mu"
,
m_mu
,
1.78e-05
);
m_session
->
LoadParameter
(
"thermalConductivity"
,
m_thermalConductivity
,
0.0257
);
m_session
->
LoadParameter
(
"rhoInf"
,
m_rhoInf
,
1.225
);
m_session
->
LoadParameter
(
"pInf"
,
m_pInf
,
101325
);
// Setting up the normals
int
i
;
int
nDim
=
pFields
[
0
]
->
GetCoordim
(
0
);
int
nTracePts
=
pFields
[
0
]
->
GetTrace
()
->
GetTotPoints
();
m_spaceDim
=
nDim
;
if
(
pSession
->
DefinesSolverInfo
(
"HOMOGENEOUS"
))
{
m_spaceDim
=
3
;
}
m_diffDim
=
m_spaceDim
-
nDim
;
m_traceVel
=
Array
<
OneD
,
Array
<
OneD
,
NekDouble
>
>
(
m_spaceDim
);
m_traceNormals
=
Array
<
OneD
,
Array
<
OneD
,
NekDouble
>
>
(
m_spaceDim
);
for
(
i
=
0
;
i
<
m_spaceDim
;
++
i
)
{
m_traceVel
[
i
]
=
Array
<
OneD
,
NekDouble
>
(
nTracePts
,
0.0
);
m_traceNormals
[
i
]
=
Array
<
OneD
,
NekDouble
>
(
nTracePts
);
}
pFields
[
0
]
->
GetTrace
()
->
GetNormals
(
m_traceNormals
);
}
/**
* @brief Calculate weak DG Diffusion in the LDG form for the
* Navier-Stokes (NS) equations:
*
* \f$ \langle\psi, \hat{u}\cdot n\rangle
* - \langle\nabla\psi \cdot u\rangle
* \langle\phi, \hat{q}\cdot n\rangle -
* (\nabla \phi \cdot q) \rangle \f$
*
* The equations that need a diffusion operator are those related
* with the velocities and with the energy.
*
*/
void
DiffusionLDGNS
::
v_Diffuse
(
const
int
nConvectiveFields
,
const
Array
<
OneD
,
MultiRegions
::
ExpListSharedPtr
>
&
fields
,
const
Array
<
OneD
,
Array
<
OneD
,
NekDouble
>
>
&
inarray
,
Array
<
OneD
,
Array
<
OneD
,
NekDouble
>
>
&
outarray
,
const
Array
<
OneD
,
Array
<
OneD
,
NekDouble
>
>
&
pFwd
,
const
Array
<
OneD
,
Array
<
OneD
,
NekDouble
>
>
&
pBwd
)
{
int
i
,
j
;
int
nDim
=
fields
[
0
]
->
GetCoordim
(
0
);
int
nScalars
=
inarray
.
num_elements
();
int
nPts
=
fields
[
0
]
->
GetTotPoints
();
int
nCoeffs
=
fields
[
0
]
->
GetNcoeffs
();
int
nTracePts
=
fields
[
0
]
->
GetTrace
()
->
GetTotPoints
();
Array
<
OneD
,
NekDouble
>
tmp1
(
nCoeffs
);
Array
<
OneD
,
Array
<
OneD
,
NekDouble
>
>
tmp2
(
nConvectiveFields
);
Array
<
OneD
,
Array
<
OneD
,
Array
<
OneD
,
NekDouble
>
>
>
numericalFluxO1
(
m_spaceDim
);
Array
<
OneD
,
Array
<
OneD
,
Array
<
OneD
,
NekDouble
>
>
>
derivativesO1
(
m_spaceDim
);
for
(
j
=
0
;
j
<
m_spaceDim
;
++
j
)
{
numericalFluxO1
[
j
]
=
Array
<
OneD
,
Array
<
OneD
,
NekDouble
>
>
(
nScalars
);
derivativesO1
[
j
]
=
Array
<
OneD
,
Array
<
OneD
,
NekDouble
>
>
(
nScalars
);
for
(
i
=
0
;
i
<
nScalars
;
++
i
)
{
numericalFluxO1
[
j
][
i
]
=
Array
<
OneD
,
NekDouble
>
(
nTracePts
,
0.0
);
derivativesO1
[
j
][
i
]
=
Array
<
OneD
,
NekDouble
>
(
nPts
,
0.0
);
}
}
// Compute the numerical fluxes for the first order derivatives
v_NumericalFluxO1
(
fields
,
inarray
,
numericalFluxO1
,
pFwd
,
pBwd
);
for
(
j
=
0
;
j
<
nDim
;
++
j
)
{
for
(
i
=
0
;
i
<
nScalars
;
++
i
)
{
fields
[
i
]
->
IProductWRTDerivBase
(
j
,
inarray
[
i
],
tmp1
);
Vmath
::
Neg
(
nCoeffs
,
tmp1
,
1
);
fields
[
i
]
->
AddTraceIntegral
(
numericalFluxO1
[
j
][
i
],