Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fixed typo Dit->Dict #578

Merged
merged 1 commit into from
Jul 25, 2017
Merged

fixed typo Dit->Dict #578

merged 1 commit into from
Jul 25, 2017

Conversation

cekees
Copy link
Member

@cekees cekees commented Jul 25, 2017

@cekees cekees merged commit d951d7a into master Jul 25, 2017
@cekees cekees deleted the fix_Context branch July 25, 2017 23:19
zhang-alvin added a commit that referenced this pull request Aug 9, 2017
Add 3D capability for SCOREC mesh-reconstruction from Proteus mesh data structures.

* ENH: Added serial 3D mesh reconstruction capability. Littered with debug statements

* MAINT: Removed debug statements and added doc strings for some conditionals. Parallel seems to work so long as partitioning is set correctly

* FIX: prevent boundary elements from collapsing by classifying exterior edge entities as model edges

* FIX: resolve assert if multiregion domain and add logic to inherit node materials from boundary materials in 3D

* fixed typo Dit->Dict (#578)

* FIX: only have owning edges send model info
cekees pushed a commit that referenced this pull request Sep 21, 2017
* SDF function now takes the particle index as the first argument rather than time

* Fixed extra parentheses error.

* MBD: added separated mesh motion function (translation/rotation)

* reintroduced MeshAdaptPUMI in setup.py

* Setting particle velocity.

* Adding angular velocities.

* Added angular velocity to particle acceleration. Added viscous stress term to force calcualtion.

* debugging particle forces in RANS3PF2D

* Add 1D Riemann problem

* SWEs: copy SSP33 method from mwf implementation

* SWEs: checkoyt SW2DCV.py from mquezada/second_order_SWEs

* SWEs: checkout SW2DCV.h from mquezada/second_order_SWEs

* SWEs: checkout cSW2DCV.pyx from mquezada/second_order_SWEs

* SWEs: add SSP33 class within TimeIntegration

* SWEs: Add explicit solvers for SWEs

* Cekees/mbd/chrono (#570)

* re-enabled Nitsche adjoint for pinc

* updated optimized pressure calculation for projection scheme

* enabled optimized pressure solve for rans3p

* enabled optimized pressure solve for rans3p

* fixed mass flux for rotational form of pressure calc

* worked on isotropic interface size field

* fix 2D Darcy term and isotropic adaptive scheme

* update stack with fixed zoltan build

* SWEs: Change initial conditions for 1D Riemann problem

* SWEs: update to latest version of SWEs code from branch mquezada/second_order_SWEs

* updated hashstack (chrono)

* enabling using Z value of mesh input for bathy

* works with malpasset

* removed irrlicht dependency

* added velocity error estimate

* Fixx problem with FCT

* Add problem: dam over bumps

* Add Malpasset test

* Fix issue (for reading bathymetry) when merging some changes

* Minor change in FCT step

* added unstructured test to sw_hump case

* use Context in test files and archive bathy as mesh

* added user defined size_field ("isotropicProteus" option)

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a Chebyshev semi-iteration solver.
     - Add a new class to create and apply a Chebyshev semi-iteration
     - Introduces several tests to verify resonable output
     - Adds a new function for turning dense numpy arrays
       into petsc4py matrices (really only useful for testing)

* Modifications made for parallel implementation.

* Fixed typo in setup.py.

* Creates a selfp class in Proteus.

* Removed unnecessary MPI_barriers.

* Refactors matrix construction to reduce parallel overhead.

* Adds RANS2P2D functions for building operators.

* PCD RANS2P with parallel support.

* Updates NumericalAnalytics for multiphyics problems.
	- Adds a csv file exporter.

* Updated TestTools utilities.

* Changes Chebyshev Semi-Iteration to be consistent with IFISS

* Adds a parallel info tracker for multilevel meshes.
     - Fixes a broken test.

* Latest edits for RANS2P dambreak problem

* fixed typo Dit->Dict

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* - Added the support for imposing the velocity BC for particles; particle_velocityList must be supported just like particle_sdfList.
- Added the support for simulating granular material; In this case granular_vel_Calc, and granular_sdf_Calc must be supported which calculate the velocity and sd field for any particle i.
- Bug fix in defining the surface penalty constant.
- Added the suport to export a single sd field for granular material simulations.

* Applied the fixes from
f8fdac4 [f8fdac4]
origin/rans3p_bc

* Testing Proteus integration.

* Archive bathymetry and water elevation

* added surface area check

* Debugging force calculations.

* Compute normalx and normaly vectors

* sdf debugging.

* add necessary variables in SW2DCV.py for reflecting boundary conditions

* change dam over bumps to use new reflecting BCs

* change default mesh to unstructured

* Added the surface area check and viscous forces from rans3p_bc
80601e0

* test reflecting BCs over dam break over bumps with non rectangular domain

* fixed parallel force calc for ibm in 2D

* fixed parallel force calc for ibm in 2D

* Changes to work with multiple particles.

* Add test for gauges

* fixed merge

* deep copy into dof[:] instead change dof reference to new array

* Changes to get 3D IB case working.

* Several changes to SW2DCV.h, SW2DCV.py and cSW2DCP.pyx. Mainly to change regularization and improve robustness

* ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame

* Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"

This reverts commit b6ea6dd.

* Debugging IB particle forces.

* stabilization stuff

* 3D Mesh Reconstruction (#589)

Add 3D capability for SCOREC mesh-reconstruction from Proteus mesh data structures.

* ENH: Added serial 3D mesh reconstruction capability. Littered with debug statements

* MAINT: Removed debug statements and added doc strings for some conditionals. Parallel seems to work so long as partitioning is set correctly

* FIX: prevent boundary elements from collapsing by classifying exterior edge entities as model edges

* FIX: resolve assert if multiregion domain and add logic to inherit node materials from boundary materials in 3D

* fixed typo Dit->Dict (#578)

* FIX: only have owning edges send model info

* Revert "Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"" (#588)

This turns on the hard-coded `size_scale` and `size_frame` fields for the `anisotropicProteus` option.
This reverts commit 31f5dfa.

* Added python script that creates symbolic links needed for proteus build

* Change the place where the low order dissipative matrix is computed

* Add function in c++ to compute the LO dissipative matrix, the edge_based_cfl and others (smoothness indicator and EV residual)

* Compute desired dt to fulfill positivity constraints from within choose_dt in RKEV

* Remove some computations on function that computes the edge_based_cfl

* Change again place where dLow is being computed

* Avoid computing dLow twice if we are in the first stage of the SSP method

* Add minor bug in SW2DCV.py

* Fixes the issue for running the ib cases in parallel, for 2D and 3D

* Archive quantDOFs (if the model has it)

* Adjust dt before calculateResidual based on 2nd order solution

* Change flags in solvers for SWEs to turn off part of the code in the 2nd call of calculateResidual

* This is a branch to test the different methods to apply no slip boundary conditions on IBs,
- The important part of this commit is applying the one-sided penalty terms only inside the IB, not outside; this is important to make sure that the boundary layer around the bodies are not modified; This finally makes sure that drag calculation is not affected by the source terms introduced at the fluid-solid interface.
- Another thing that is tested in this commit is adding dV*(1.0 - H_s)*C_vol*(u-u_s)*rho term to the force terms; this is to make sure that the momentum loss inside the IBs are taken into account as well. However, this requiers that u=us is satisfied inside the IB up to a fairly tight tolerance, otherwise large alpha and beta constants will results in a non-zero contribution in this exrpression.

* Add 2D paraboloid test

* Add 1D paraboloid test

* comment out pessure stabilization terms in RANS3PF2D

* This commit contains two different taks:
1- Fixing the issue with imposing the u=u_s at the inner nodes of the IB; most importantly the last five (except the third from last) chunk of the changes in RANS3PF2D.h are for this purpose. The pressure gradient term effect was also ignorded in the evaluateCoefficient method
2- WIP backend for the adaptive mesh refinment at the fluid-solid interface was added, but this is not working at this point

* Applying the changes form RANS3PF2D.h to RANS3PF.h

* Clang formated

* bug fix for particle simulation

* Adjoint stabilization.

* merge in orgin/master

* version of rans2p2d with no stabilization in momentum equation

* Bug fix in the RANS3PF for the cases where multiple particles are simulated.
The penalty terms should have been applied to all particles

* re-enabled shock capturing

* Fixed the bug for simulating multiple particles in 3D.

* Compute entropy residual based on flat bottom (b(x)=0)

* Add more than one gauge to test gauges with SWEs

* Add gauges and correct location of dam in Malpasset test

* Updated the mesh adaptivity for solid level set.
This needs to be modified for moving objects, since there is a lag between adapted mesh and the zero level set

* added hard-coded signed distance function

* corrected sdf for cavity test

* added compressible (non-conservative) form of momentum

To run as it has been in prior releases
COMPRESSIBLE_FORM=0.0
MOMENTUM_SGE=1.0 (turns off all subgrid error in momentum)
VELOCITY_SGE=1.0 (turns off velocity subgrid error in momentum)
PRESSURE_SGE=1.0 (turns off pressure subgrid error in momentum)

* fixed non-conservative time derivative and weak BC's in nc form

* re-enable density scalings

* switched to HamiltonianJacobian term

* cleaned up non-conservative form

* turn off density scaling in rho-scaled mass and advection

* switch to scalar diffusion in PCD laplace operator

* added mass lumping for pcd mass operators

* Adds a linearSmootherOptions tuple.
     - In our work, we've found that preconditioner settings can
       affect performance.  To make it easy to switch between these
       settings I've added a tuple that allows users to specify
       different preconditioner settings in the numericals and
       physics files.

* Adds a numerical viscosity option for the two-phase PCD operator.

* Changes the COMPRESSIBLE tag to NONCONSERVATIVE.

* Setup incompressible form for 3D case.

* Adds a lumped solver option for PCD mass matrices.

* Gauge compatibility fix with adaptivity (#592)

* FIX: ignore boundary flux contributions at interpart boundaries for element partitioning. Added a warning statement in NumericalSolution to describe limitation.

* MAINT: Removed some std::cout statements from grading algorithm

* MAINT: warning string should apply for any type of partitioning

* DOC/TST: Moved warning to RANS2P to fix Stokes Test that depends on log comparisons

* Use FE for malpasset test

* Cleans up merge with master branch.
       - Removes some leftover merge conflicts.
       - Corrects failing tests after merge.
       - Modifies operator constructor.

* Adds null-space documentation to Sp operator.
     - Adds a constant null space flag to Sp operator
     - Adds more documentation to Sp operator
     - Changes some print statements to logEvent
     - Deletes some code duplication.

* Adds boundary null space flag to OneLevelTransport class.
     - Adds a boundaryCreatesNullSpace attribute to the physics file
     - Adds a bdyNullSpace attribute to OneLevelTransport
     - Fixes hack so global nullspace is now set based on model specs

* Small documentation and code clean up.

* Update asserts in parallel setup.

* Adds phase_function option to RANS2P coefficients class.
     - Allows the user to specify a signed distance and
       vof function for the two-phase NS RANS2P coefficients.
     - Adds and exception handle for two-phase PCD preconditioner
       options.

* cleaned up RANS2P

* replaced Sequential_FixedStep_Simple with Sequential_tnList

* updated Sequential_FixedStep_Simple, part 2

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* added surface area check

* fixed parallel force calc for ibm in 2D

* fixed merge

* Add function calculateRedistancingResidual within NCLS model

* Add calculateRhsSmoothing within NCLS

* Add function calculateResidual_edge_based_EV within NCLS

* Add RKEV to NCLS.py

* Add SSP33 into TimeIntegration.py

* Add PeriodicBoundaryConditions argument into numerical flux: Advection_DiagonalUpwind_IIPG_exterior

* Add 1D test to NCLS model

* Add calculateResidual_entropy_viscosity and calculateJacobian_entropy_viscosity functions to RANS3PF models in 2 and 3D

* Compute CFL not within functions from subgrid errors

* Add convergence test on projection scheme

* Add cMax and cE (for entropy viscosity) parameters to RANS3PF.

* Add option to switch between calculateResidual and calculateResidual_entropy_viscosity based on use_entropy_viscosity in the _n.py model file

* Hard code the option to stop considering pressure gradients. This is for debugging and to study convergence of momentum equations.

* Add changes for entropy viscosity stabilization from 3D to 2D RANS3PF

* Select appropiate Jacobian depending on the type of stabilization (SUPG vs EV)

* Compute forces at quad points (during preStep) if the _p.py file has dictionary forceTerms

* Pass force terms at quad points to RANS3PF model

* Some changes to test for convergence on Proj Scheme

* Add KILL_PRESSURE_TERM to RANS3PF models. This is for debugging and to check convergence of momentum eqns

* Allow Pres.py model to exist without pressure increment model. This is useful to test convergence of the momentum equation

* Pass force terms to evaluate coefficients. Note: this is relevant just for the residual in the interior of the domain

* compute abs(det(J)) inside RANS3PF.py

* debugging prob with self.q[(m,0)]

* fix bug when setting self.q[(m,0)]

* add dV_u to RANS3PF.py model

* Pass q_grad_u, ..., ebqe_grad_u, ... to calculateResidual to save grads for computation of H1 error

* pass grad(u) at quad points in the interior of the elements and the boundaries to calculateResidual

* Add convergence test on NS momentum equations

* set pressure change to zero in postStep if pressureIncrementModel is None

* Let dV_u be the same (by reference) as dV

* Add and pass velocityStar at quad points. This is to fix order of accuracy (from 1st to 2nd) on RANS3PF

* Add u_dof_old, ..., dt and quantDOFs vectors to RANS3PF model. This is to comptue entropy residual

* Correct entropy residual

* Archive quantDOFs

* Compute smoothness indicator per cell for every component

* change test on pure momentum eqns for proj scheme to make it more conveniet for changing viscosity

* Testing an artificial viscosity for NS

* Add files for convergence test on proj scheme

* add density and viscosity as functions at quad points. To test convergence

* change from passing kinematic viscosity to dynamic viscosity

* add structures for density and dynamic viscosity at quad point given by user function

* change formulation to not divide by rho and modify weak entropy residual

* Forgot to add this file

* Add computation of L2 error on pressure if p is in the batch and if the analytical function is given

* Add femSpace to constructor of writeFunctionXdmf to make it work with P2 spaces

* Fix pressure update considering variable time steps and zero out q_massFlux if useRotationalForm=False

* Pass divU to PresInc.h, allow (via a flag) the rhs to not be integrated by parts and modify the rhs via a compatibility condition

* Fix Null Space of PresInc model, add flags for int by parts, kill pressure and correct the velocity

* Pass to PresInc flag for integrating by parts and divergence at quad points

* changes to RANS3PF: change computation of entropy residual, compute div(U) at quad points and add some flags

* change some parameters and force terms to convergence test on pure momentum equations for RANS3PF

* add a 2nd manufactures solution, parameters, flags and others to the conv test for the proj scheme

* add EV to 3D RANS3PF

* fix bug in SUPG stab

* scale entropy residual by rho to make it have units of dynamic viscosity

* Add self.order to C0_AffineLinear and C0_AffineQuadratic on simplexes

* scale hK by 1./order_of_polynomial

* change entropy residual to average instead of max

* add assert about integration by parts of div(U) in PresInc

* turn off modulation on EV coefficient

* turn off modulation also in 3D code

* Change test for convergence

* checkout NCLS model from master

* Fix ratio of time steps to consider first order time integration

* re-indented RANS2P

* untabified

* untabified RANS2P

* added boundaryFlags > 0 check to Jacobian flux terms too

* re-indented RANS3PF

* re-indented RANS3PF

* updated RANS3P with bdyNullSpace arg

* updated coding guidelines

* switched to sudo=false; removed apt packages

* Updates Chebyshev semi-iteration to inherit from LinearSolver class.
	- Removes IterativeSolver class
	- Documentation edits
	- Moves class from LinearAlgebra module to LinearSolver

* update chrono build

* fix chrono-dependent packages

* re-enabled apt-get packages since they are on the whitelist

* fixed assert(phis)

* slight update to makefile
cekees added a commit that referenced this pull request Sep 21, 2017
* SDF function now takes the particle index as the first argument rather than time

* Fixed extra parentheses error.

* MBD: added separated mesh motion function (translation/rotation)

* reintroduced MeshAdaptPUMI in setup.py

* Setting particle velocity.

* Adding angular velocities.

* Added angular velocity to particle acceleration. Added viscous stress term to force calcualtion.

* debugging particle forces in RANS3PF2D

* Add 1D Riemann problem

* SWEs: copy SSP33 method from mwf implementation

* SWEs: checkoyt SW2DCV.py from mquezada/second_order_SWEs

* SWEs: checkout SW2DCV.h from mquezada/second_order_SWEs

* SWEs: checkout cSW2DCV.pyx from mquezada/second_order_SWEs

* SWEs: add SSP33 class within TimeIntegration

* SWEs: Add explicit solvers for SWEs

* Cekees/mbd/chrono (#570)

* re-enabled Nitsche adjoint for pinc

* updated optimized pressure calculation for projection scheme

* enabled optimized pressure solve for rans3p

* enabled optimized pressure solve for rans3p

* fixed mass flux for rotational form of pressure calc

* worked on isotropic interface size field

* fix 2D Darcy term and isotropic adaptive scheme

* update stack with fixed zoltan build

* SWEs: Change initial conditions for 1D Riemann problem

* SWEs: update to latest version of SWEs code from branch mquezada/second_order_SWEs

* updated hashstack (chrono)

* enabling using Z value of mesh input for bathy

* works with malpasset

* removed irrlicht dependency

* added velocity error estimate

* Fixx problem with FCT

* Add problem: dam over bumps

* Add Malpasset test

* Fix issue (for reading bathymetry) when merging some changes

* Minor change in FCT step

* added unstructured test to sw_hump case

* use Context in test files and archive bathy as mesh

* added user defined size_field ("isotropicProteus" option)

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a Chebyshev semi-iteration solver.
     - Add a new class to create and apply a Chebyshev semi-iteration
     - Introduces several tests to verify resonable output
     - Adds a new function for turning dense numpy arrays
       into petsc4py matrices (really only useful for testing)

* Modifications made for parallel implementation.

* Fixed typo in setup.py.

* Creates a selfp class in Proteus.

* Removed unnecessary MPI_barriers.

* Refactors matrix construction to reduce parallel overhead.

* Adds RANS2P2D functions for building operators.

* PCD RANS2P with parallel support.

* Updates NumericalAnalytics for multiphyics problems.
	- Adds a csv file exporter.

* Updated TestTools utilities.

* Changes Chebyshev Semi-Iteration to be consistent with IFISS

* Adds a parallel info tracker for multilevel meshes.
     - Fixes a broken test.

* Latest edits for RANS2P dambreak problem

* fixed typo Dit->Dict

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* - Added the support for imposing the velocity BC for particles; particle_velocityList must be supported just like particle_sdfList.
- Added the support for simulating granular material; In this case granular_vel_Calc, and granular_sdf_Calc must be supported which calculate the velocity and sd field for any particle i.
- Bug fix in defining the surface penalty constant.
- Added the suport to export a single sd field for granular material simulations.

* Applied the fixes from
f8fdac4 [f8fdac4]
origin/rans3p_bc

* Testing Proteus integration.

* Archive bathymetry and water elevation

* added surface area check

* Debugging force calculations.

* Compute normalx and normaly vectors

* sdf debugging.

* add necessary variables in SW2DCV.py for reflecting boundary conditions

* change dam over bumps to use new reflecting BCs

* change default mesh to unstructured

* Added the surface area check and viscous forces from rans3p_bc
80601e0

* test reflecting BCs over dam break over bumps with non rectangular domain

* fixed parallel force calc for ibm in 2D

* fixed parallel force calc for ibm in 2D

* Changes to work with multiple particles.

* Add test for gauges

* fixed merge

* deep copy into dof[:] instead change dof reference to new array

* Changes to get 3D IB case working.

* Several changes to SW2DCV.h, SW2DCV.py and cSW2DCP.pyx. Mainly to change regularization and improve robustness

* ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame

* Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"

This reverts commit b6ea6dd.

* Debugging IB particle forces.

* stabilization stuff

* 3D Mesh Reconstruction (#589)

Add 3D capability for SCOREC mesh-reconstruction from Proteus mesh data structures.

* ENH: Added serial 3D mesh reconstruction capability. Littered with debug statements

* MAINT: Removed debug statements and added doc strings for some conditionals. Parallel seems to work so long as partitioning is set correctly

* FIX: prevent boundary elements from collapsing by classifying exterior edge entities as model edges

* FIX: resolve assert if multiregion domain and add logic to inherit node materials from boundary materials in 3D

* fixed typo Dit->Dict (#578)

* FIX: only have owning edges send model info

* Revert "Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"" (#588)

This turns on the hard-coded `size_scale` and `size_frame` fields for the `anisotropicProteus` option.
This reverts commit 31f5dfa.

* Added python script that creates symbolic links needed for proteus build

* Change the place where the low order dissipative matrix is computed

* Add function in c++ to compute the LO dissipative matrix, the edge_based_cfl and others (smoothness indicator and EV residual)

* Compute desired dt to fulfill positivity constraints from within choose_dt in RKEV

* Remove some computations on function that computes the edge_based_cfl

* Change again place where dLow is being computed

* Avoid computing dLow twice if we are in the first stage of the SSP method

* Add minor bug in SW2DCV.py

* Fixes the issue for running the ib cases in parallel, for 2D and 3D

* Archive quantDOFs (if the model has it)

* Adjust dt before calculateResidual based on 2nd order solution

* Change flags in solvers for SWEs to turn off part of the code in the 2nd call of calculateResidual

* This is a branch to test the different methods to apply no slip boundary conditions on IBs,
- The important part of this commit is applying the one-sided penalty terms only inside the IB, not outside; this is important to make sure that the boundary layer around the bodies are not modified; This finally makes sure that drag calculation is not affected by the source terms introduced at the fluid-solid interface.
- Another thing that is tested in this commit is adding dV*(1.0 - H_s)*C_vol*(u-u_s)*rho term to the force terms; this is to make sure that the momentum loss inside the IBs are taken into account as well. However, this requiers that u=us is satisfied inside the IB up to a fairly tight tolerance, otherwise large alpha and beta constants will results in a non-zero contribution in this exrpression.

* Add 2D paraboloid test

* Add 1D paraboloid test

* comment out pessure stabilization terms in RANS3PF2D

* This commit contains two different taks:
1- Fixing the issue with imposing the u=u_s at the inner nodes of the IB; most importantly the last five (except the third from last) chunk of the changes in RANS3PF2D.h are for this purpose. The pressure gradient term effect was also ignorded in the evaluateCoefficient method
2- WIP backend for the adaptive mesh refinment at the fluid-solid interface was added, but this is not working at this point

* Applying the changes form RANS3PF2D.h to RANS3PF.h

* Clang formated

* bug fix for particle simulation

* Adjoint stabilization.

* merge in orgin/master

* version of rans2p2d with no stabilization in momentum equation

* Bug fix in the RANS3PF for the cases where multiple particles are simulated.
The penalty terms should have been applied to all particles

* re-enabled shock capturing

* Fixed the bug for simulating multiple particles in 3D.

* Compute entropy residual based on flat bottom (b(x)=0)

* Add more than one gauge to test gauges with SWEs

* Add gauges and correct location of dam in Malpasset test

* Updated the mesh adaptivity for solid level set.
This needs to be modified for moving objects, since there is a lag between adapted mesh and the zero level set

* added hard-coded signed distance function

* corrected sdf for cavity test

* added compressible (non-conservative) form of momentum

To run as it has been in prior releases
COMPRESSIBLE_FORM=0.0
MOMENTUM_SGE=1.0 (turns off all subgrid error in momentum)
VELOCITY_SGE=1.0 (turns off velocity subgrid error in momentum)
PRESSURE_SGE=1.0 (turns off pressure subgrid error in momentum)

* fixed non-conservative time derivative and weak BC's in nc form

* re-enable density scalings

* switched to HamiltonianJacobian term

* cleaned up non-conservative form

* turn off density scaling in rho-scaled mass and advection

* switch to scalar diffusion in PCD laplace operator

* added mass lumping for pcd mass operators

* Adds a linearSmootherOptions tuple.
     - In our work, we've found that preconditioner settings can
       affect performance.  To make it easy to switch between these
       settings I've added a tuple that allows users to specify
       different preconditioner settings in the numericals and
       physics files.

* Adds a numerical viscosity option for the two-phase PCD operator.

* Changes the COMPRESSIBLE tag to NONCONSERVATIVE.

* Setup incompressible form for 3D case.

* Adds a lumped solver option for PCD mass matrices.

* Gauge compatibility fix with adaptivity (#592)

* FIX: ignore boundary flux contributions at interpart boundaries for element partitioning. Added a warning statement in NumericalSolution to describe limitation.

* MAINT: Removed some std::cout statements from grading algorithm

* MAINT: warning string should apply for any type of partitioning

* DOC/TST: Moved warning to RANS2P to fix Stokes Test that depends on log comparisons

* Use FE for malpasset test

* Cleans up merge with master branch.
       - Removes some leftover merge conflicts.
       - Corrects failing tests after merge.
       - Modifies operator constructor.

* Adds null-space documentation to Sp operator.
     - Adds a constant null space flag to Sp operator
     - Adds more documentation to Sp operator
     - Changes some print statements to logEvent
     - Deletes some code duplication.

* Adds boundary null space flag to OneLevelTransport class.
     - Adds a boundaryCreatesNullSpace attribute to the physics file
     - Adds a bdyNullSpace attribute to OneLevelTransport
     - Fixes hack so global nullspace is now set based on model specs

* Small documentation and code clean up.

* Update asserts in parallel setup.

* Adds phase_function option to RANS2P coefficients class.
     - Allows the user to specify a signed distance and
       vof function for the two-phase NS RANS2P coefficients.
     - Adds and exception handle for two-phase PCD preconditioner
       options.

* cleaned up RANS2P

* replaced Sequential_FixedStep_Simple with Sequential_tnList

* updated Sequential_FixedStep_Simple, part 2

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* added surface area check

* fixed parallel force calc for ibm in 2D

* fixed merge

* Add function calculateRedistancingResidual within NCLS model

* Add calculateRhsSmoothing within NCLS

* Add function calculateResidual_edge_based_EV within NCLS

* Add RKEV to NCLS.py

* Add SSP33 into TimeIntegration.py

* Add PeriodicBoundaryConditions argument into numerical flux: Advection_DiagonalUpwind_IIPG_exterior

* Add 1D test to NCLS model

* Add calculateResidual_entropy_viscosity and calculateJacobian_entropy_viscosity functions to RANS3PF models in 2 and 3D

* Compute CFL not within functions from subgrid errors

* Add convergence test on projection scheme

* Add cMax and cE (for entropy viscosity) parameters to RANS3PF.

* Add option to switch between calculateResidual and calculateResidual_entropy_viscosity based on use_entropy_viscosity in the _n.py model file

* Hard code the option to stop considering pressure gradients. This is for debugging and to study convergence of momentum equations.

* Add changes for entropy viscosity stabilization from 3D to 2D RANS3PF

* Select appropiate Jacobian depending on the type of stabilization (SUPG vs EV)

* Compute forces at quad points (during preStep) if the _p.py file has dictionary forceTerms

* Pass force terms at quad points to RANS3PF model

* Some changes to test for convergence on Proj Scheme

* Add KILL_PRESSURE_TERM to RANS3PF models. This is for debugging and to check convergence of momentum eqns

* Allow Pres.py model to exist without pressure increment model. This is useful to test convergence of the momentum equation

* Pass force terms to evaluate coefficients. Note: this is relevant just for the residual in the interior of the domain

* compute abs(det(J)) inside RANS3PF.py

* debugging prob with self.q[(m,0)]

* fix bug when setting self.q[(m,0)]

* add dV_u to RANS3PF.py model

* Pass q_grad_u, ..., ebqe_grad_u, ... to calculateResidual to save grads for computation of H1 error

* pass grad(u) at quad points in the interior of the elements and the boundaries to calculateResidual

* Add convergence test on NS momentum equations

* set pressure change to zero in postStep if pressureIncrementModel is None

* Let dV_u be the same (by reference) as dV

* Add and pass velocityStar at quad points. This is to fix order of accuracy (from 1st to 2nd) on RANS3PF

* Add u_dof_old, ..., dt and quantDOFs vectors to RANS3PF model. This is to comptue entropy residual

* Correct entropy residual

* Archive quantDOFs

* Compute smoothness indicator per cell for every component

* change test on pure momentum eqns for proj scheme to make it more conveniet for changing viscosity

* Testing an artificial viscosity for NS

* Add files for convergence test on proj scheme

* add density and viscosity as functions at quad points. To test convergence

* change from passing kinematic viscosity to dynamic viscosity

* add structures for density and dynamic viscosity at quad point given by user function

* change formulation to not divide by rho and modify weak entropy residual

* Forgot to add this file

* Add computation of L2 error on pressure if p is in the batch and if the analytical function is given

* Add femSpace to constructor of writeFunctionXdmf to make it work with P2 spaces

* Fix pressure update considering variable time steps and zero out q_massFlux if useRotationalForm=False

* Pass divU to PresInc.h, allow (via a flag) the rhs to not be integrated by parts and modify the rhs via a compatibility condition

* Fix Null Space of PresInc model, add flags for int by parts, kill pressure and correct the velocity

* Pass to PresInc flag for integrating by parts and divergence at quad points

* changes to RANS3PF: change computation of entropy residual, compute div(U) at quad points and add some flags

* change some parameters and force terms to convergence test on pure momentum equations for RANS3PF

* add a 2nd manufactures solution, parameters, flags and others to the conv test for the proj scheme

* add EV to 3D RANS3PF

* fix bug in SUPG stab

* scale entropy residual by rho to make it have units of dynamic viscosity

* Add self.order to C0_AffineLinear and C0_AffineQuadratic on simplexes

* scale hK by 1./order_of_polynomial

* change entropy residual to average instead of max

* add assert about integration by parts of div(U) in PresInc

* turn off modulation on EV coefficient

* turn off modulation also in 3D code

* Change test for convergence

* checkout NCLS model from master

* Fix ratio of time steps to consider first order time integration

* re-indented RANS2P

* untabified

* untabified RANS2P

* added boundaryFlags > 0 check to Jacobian flux terms too

* re-indented RANS3PF

* re-indented RANS3PF

* updated RANS3P with bdyNullSpace arg

* updated coding guidelines

* switched to sudo=false; removed apt packages

* Updates Chebyshev semi-iteration to inherit from LinearSolver class.
	- Removes IterativeSolver class
	- Documentation edits
	- Moves class from LinearAlgebra module to LinearSolver

* update chrono build

* fix chrono-dependent packages

* re-enabled apt-get packages since they are on the whitelist

* fixed assert(phis)

* slight update to makefile
manuel-quezada added a commit that referenced this pull request Oct 3, 2017
* Latest edits for RANS2P dambreak problem

* fixed typo Dit->Dict

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* - Added the support for imposing the velocity BC for particles; particle_velocityList must be supported just like particle_sdfList.
- Added the support for simulating granular material; In this case granular_vel_Calc, and granular_sdf_Calc must be supported which calculate the velocity and sd field for any particle i.
- Bug fix in defining the surface penalty constant.
- Added the suport to export a single sd field for granular material simulations.

* Applied the fixes from
f8fdac4 [f8fdac4]
origin/rans3p_bc

* Testing Proteus integration.

* Archive bathymetry and water elevation

* added surface area check

* Debugging force calculations.

* Compute normalx and normaly vectors

* sdf debugging.

* add necessary variables in SW2DCV.py for reflecting boundary conditions

* change dam over bumps to use new reflecting BCs

* change default mesh to unstructured

* Added the surface area check and viscous forces from rans3p_bc
80601e0

* test reflecting BCs over dam break over bumps with non rectangular domain

* fixed parallel force calc for ibm in 2D

* fixed parallel force calc for ibm in 2D

* Changes to work with multiple particles.

* Add test for gauges

* fixed merge

* deep copy into dof[:] instead change dof reference to new array

* Changes to get 3D IB case working.

* Several changes to SW2DCV.h, SW2DCV.py and cSW2DCP.pyx. Mainly to change regularization and improve robustness

* ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame

* Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"

This reverts commit b6ea6dd.

* Debugging IB particle forces.

* stabilization stuff

* 3D Mesh Reconstruction (#589)

Add 3D capability for SCOREC mesh-reconstruction from Proteus mesh data structures.

* ENH: Added serial 3D mesh reconstruction capability. Littered with debug statements

* MAINT: Removed debug statements and added doc strings for some conditionals. Parallel seems to work so long as partitioning is set correctly

* FIX: prevent boundary elements from collapsing by classifying exterior edge entities as model edges

* FIX: resolve assert if multiregion domain and add logic to inherit node materials from boundary materials in 3D

* fixed typo Dit->Dict (#578)

* FIX: only have owning edges send model info

* Revert "Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"" (#588)

This turns on the hard-coded `size_scale` and `size_frame` fields for the `anisotropicProteus` option.
This reverts commit 31f5dfa.

* Added python script that creates symbolic links needed for proteus build

* Change the place where the low order dissipative matrix is computed

* Add function in c++ to compute the LO dissipative matrix, the edge_based_cfl and others (smoothness indicator and EV residual)

* Compute desired dt to fulfill positivity constraints from within choose_dt in RKEV

* Remove some computations on function that computes the edge_based_cfl

* Change again place where dLow is being computed

* Avoid computing dLow twice if we are in the first stage of the SSP method

* Add minor bug in SW2DCV.py

* Fixes the issue for running the ib cases in parallel, for 2D and 3D

* Archive quantDOFs (if the model has it)

* Adjust dt before calculateResidual based on 2nd order solution

* Change flags in solvers for SWEs to turn off part of the code in the 2nd call of calculateResidual

* This is a branch to test the different methods to apply no slip boundary conditions on IBs,
- The important part of this commit is applying the one-sided penalty terms only inside the IB, not outside; this is important to make sure that the boundary layer around the bodies are not modified; This finally makes sure that drag calculation is not affected by the source terms introduced at the fluid-solid interface.
- Another thing that is tested in this commit is adding dV*(1.0 - H_s)*C_vol*(u-u_s)*rho term to the force terms; this is to make sure that the momentum loss inside the IBs are taken into account as well. However, this requiers that u=us is satisfied inside the IB up to a fairly tight tolerance, otherwise large alpha and beta constants will results in a non-zero contribution in this exrpression.

* Add 2D paraboloid test

* Add 1D paraboloid test

* comment out pessure stabilization terms in RANS3PF2D

* This commit contains two different taks:
1- Fixing the issue with imposing the u=u_s at the inner nodes of the IB; most importantly the last five (except the third from last) chunk of the changes in RANS3PF2D.h are for this purpose. The pressure gradient term effect was also ignorded in the evaluateCoefficient method
2- WIP backend for the adaptive mesh refinment at the fluid-solid interface was added, but this is not working at this point

* Applying the changes form RANS3PF2D.h to RANS3PF.h

* Clang formated

* bug fix for particle simulation

* Adjoint stabilization.

* merge in orgin/master

* version of rans2p2d with no stabilization in momentum equation

* Bug fix in the RANS3PF for the cases where multiple particles are simulated.
The penalty terms should have been applied to all particles

* re-enabled shock capturing

* Fixed the bug for simulating multiple particles in 3D.

* Compute entropy residual based on flat bottom (b(x)=0)

* Add more than one gauge to test gauges with SWEs

* Add gauges and correct location of dam in Malpasset test

* Updated the mesh adaptivity for solid level set.
This needs to be modified for moving objects, since there is a lag between adapted mesh and the zero level set

* added hard-coded signed distance function

* corrected sdf for cavity test

* added compressible (non-conservative) form of momentum

To run as it has been in prior releases
COMPRESSIBLE_FORM=0.0
MOMENTUM_SGE=1.0 (turns off all subgrid error in momentum)
VELOCITY_SGE=1.0 (turns off velocity subgrid error in momentum)
PRESSURE_SGE=1.0 (turns off pressure subgrid error in momentum)

* fixed non-conservative time derivative and weak BC's in nc form

* re-enable density scalings

* switched to HamiltonianJacobian term

* cleaned up non-conservative form

* turn off density scaling in rho-scaled mass and advection

* switch to scalar diffusion in PCD laplace operator

* added mass lumping for pcd mass operators

* Adds a linearSmootherOptions tuple.
     - In our work, we've found that preconditioner settings can
       affect performance.  To make it easy to switch between these
       settings I've added a tuple that allows users to specify
       different preconditioner settings in the numericals and
       physics files.

* Adds a numerical viscosity option for the two-phase PCD operator.

* Changes the COMPRESSIBLE tag to NONCONSERVATIVE.

* Setup incompressible form for 3D case.

* Adds a lumped solver option for PCD mass matrices.

* Gauge compatibility fix with adaptivity (#592)

* FIX: ignore boundary flux contributions at interpart boundaries for element partitioning. Added a warning statement in NumericalSolution to describe limitation.

* MAINT: Removed some std::cout statements from grading algorithm

* MAINT: warning string should apply for any type of partitioning

* DOC/TST: Moved warning to RANS2P to fix Stokes Test that depends on log comparisons

* Use FE for malpasset test

* Cleans up merge with master branch.
       - Removes some leftover merge conflicts.
       - Corrects failing tests after merge.
       - Modifies operator constructor.

* Adds null-space documentation to Sp operator.
     - Adds a constant null space flag to Sp operator
     - Adds more documentation to Sp operator
     - Changes some print statements to logEvent
     - Deletes some code duplication.

* Adds boundary null space flag to OneLevelTransport class.
     - Adds a boundaryCreatesNullSpace attribute to the physics file
     - Adds a bdyNullSpace attribute to OneLevelTransport
     - Fixes hack so global nullspace is now set based on model specs

* Small documentation and code clean up.

* Update asserts in parallel setup.

* Adds phase_function option to RANS2P coefficients class.
     - Allows the user to specify a signed distance and
       vof function for the two-phase NS RANS2P coefficients.
     - Adds and exception handle for two-phase PCD preconditioner
       options.

* cleaned up RANS2P

* replaced Sequential_FixedStep_Simple with Sequential_tnList

* updated Sequential_FixedStep_Simple, part 2

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* added surface area check

* fixed parallel force calc for ibm in 2D

* fixed merge

* Add function calculateRedistancingResidual within NCLS model

* Add calculateRhsSmoothing within NCLS

* Add function calculateResidual_edge_based_EV within NCLS

* Add RKEV to NCLS.py

* Add SSP33 into TimeIntegration.py

* Add PeriodicBoundaryConditions argument into numerical flux: Advection_DiagonalUpwind_IIPG_exterior

* Add 1D test to NCLS model

* Add calculateResidual_entropy_viscosity and calculateJacobian_entropy_viscosity functions to RANS3PF models in 2 and 3D

* Compute CFL not within functions from subgrid errors

* Add convergence test on projection scheme

* Add cMax and cE (for entropy viscosity) parameters to RANS3PF.

* Add option to switch between calculateResidual and calculateResidual_entropy_viscosity based on use_entropy_viscosity in the _n.py model file

* Hard code the option to stop considering pressure gradients. This is for debugging and to study convergence of momentum equations.

* Add changes for entropy viscosity stabilization from 3D to 2D RANS3PF

* Select appropiate Jacobian depending on the type of stabilization (SUPG vs EV)

* Compute forces at quad points (during preStep) if the _p.py file has dictionary forceTerms

* Pass force terms at quad points to RANS3PF model

* Some changes to test for convergence on Proj Scheme

* Add KILL_PRESSURE_TERM to RANS3PF models. This is for debugging and to check convergence of momentum eqns

* Allow Pres.py model to exist without pressure increment model. This is useful to test convergence of the momentum equation

* Pass force terms to evaluate coefficients. Note: this is relevant just for the residual in the interior of the domain

* compute abs(det(J)) inside RANS3PF.py

* debugging prob with self.q[(m,0)]

* fix bug when setting self.q[(m,0)]

* add dV_u to RANS3PF.py model

* Pass q_grad_u, ..., ebqe_grad_u, ... to calculateResidual to save grads for computation of H1 error

* pass grad(u) at quad points in the interior of the elements and the boundaries to calculateResidual

* Add convergence test on NS momentum equations

* set pressure change to zero in postStep if pressureIncrementModel is None

* Let dV_u be the same (by reference) as dV

* Add and pass velocityStar at quad points. This is to fix order of accuracy (from 1st to 2nd) on RANS3PF

* Add u_dof_old, ..., dt and quantDOFs vectors to RANS3PF model. This is to comptue entropy residual

* Correct entropy residual

* Archive quantDOFs

* Compute smoothness indicator per cell for every component

* change test on pure momentum eqns for proj scheme to make it more conveniet for changing viscosity

* Testing an artificial viscosity for NS

* Add files for convergence test on proj scheme

* add density and viscosity as functions at quad points. To test convergence

* change from passing kinematic viscosity to dynamic viscosity

* add structures for density and dynamic viscosity at quad point given by user function

* change formulation to not divide by rho and modify weak entropy residual

* Forgot to add this file

* Add computation of L2 error on pressure if p is in the batch and if the analytical function is given

* Add femSpace to constructor of writeFunctionXdmf to make it work with P2 spaces

* Fix pressure update considering variable time steps and zero out q_massFlux if useRotationalForm=False

* Pass divU to PresInc.h, allow (via a flag) the rhs to not be integrated by parts and modify the rhs via a compatibility condition

* Fix Null Space of PresInc model, add flags for int by parts, kill pressure and correct the velocity

* Pass to PresInc flag for integrating by parts and divergence at quad points

* changes to RANS3PF: change computation of entropy residual, compute div(U) at quad points and add some flags

* change some parameters and force terms to convergence test on pure momentum equations for RANS3PF

* add a 2nd manufactures solution, parameters, flags and others to the conv test for the proj scheme

* add EV to 3D RANS3PF

* fix bug in SUPG stab

* scale entropy residual by rho to make it have units of dynamic viscosity

* Add self.order to C0_AffineLinear and C0_AffineQuadratic on simplexes

* scale hK by 1./order_of_polynomial

* change entropy residual to average instead of max

* add assert about integration by parts of div(U) in PresInc

* turn off modulation on EV coefficient

* turn off modulation also in 3D code

* Change test for convergence

* checkout NCLS model from master

* Fix ratio of time steps to consider first order time integration

* add explicit nonlinear solvers for VOF NCLS and L2Projection all with EV

* add 1D test for NCLS with EV

* Add SSP class to TimeIntegration.py

* change folder name of NCLS 1D test

* rm old folder for 1D test on NCLS

* re-indented RANS2P

* untabified

* untabified RANS2P

* added boundaryFlags > 0 check to Jacobian flux terms too

* re-indented RANS3PF

* re-indented RANS3PF

* updated RANS3P with bdyNullSpace arg

* updated coding guidelines

* switched to sudo=false; removed apt packages

* Updates Chebyshev semi-iteration to inherit from LinearSolver class.
	- Removes IterativeSolver class
	- Documentation edits
	- Moves class from LinearAlgebra module to LinearSolver

* update chrono build

* fix chrono-dependent packages

* re-enabled apt-get packages since they are on the whitelist

* fixed more bdyNullSpace flags and a IBM issue affecting non-IBM

* change rho and mu to be changing in space and time

* fixed RSN2P2D usage of elementBoundaryMaterialTypes

* Add getPeriodicBoundaryConditions argument to Advection_DiagonalUpwind_IIPG_exterior

* Fix bug in explicit nonlinear solvers

* use uStar in the Jacobian of RANS3PF

* remove ENTROPY_VISCOSITY and EDGE_VISCOSITY flags from NCLS model

* Add function updateVelocityFieldAsFunction to use a velocity given by user (if any)

* remove preStep from MyCoefficients on oneD_advection test for NCLS

* change some parameters on oneD_advection test for NCLS

* stop computing lumped mass matrix from within the c++ code

* Add Cz to NCLS. This is the z-component of the matrix C=\int(\nabla(w_j)*w_i*dx)

* Fix linearity preservation property on low order dissipative matrix for NCLS

* Fix how to output phi_s and quantDOFs in NCLS model

* Allow two new stabilizations for NCLS: EV and one based on the smoothness of the soln

* pass dt as argument, assert that ExplicitLumpedMassMatrix solver is used when needed and make a other minor changes

* Allow to choose to different entropy functions for NCLS

* Clean up SSP methods and other parts and add SSP22 to NCLS

* set isDOFBoundary=1 when periodic BCs are set

* add assert to use RKEV with EV stabilization in NCLS

* change the definition of ENTROPY_TYPE

* Add some flags for Coupez method in NCLS

* Fix some flags on ExplicitConsistentMassMatrixWithRedistancing for NCLS

* Add 1D pure advection test

* Add 1D pure advection test for NCLS

* Add 1D test for redistancing in NCLS

* add 2D test for redistancing within NCLS

* untabify cNCLS.pyx and NCLS.py

* fix back == None and != None

* untrack compiled file

* checkout VOF model from mquezada/cleaned_NCLS_and_VOF

* remove some unused flags within VOF model

* Add mesh velocity to EV stabilization in NCLS and do some general cleaning

* Add flag for FCT to ExplicitConsistentMassMatrixForVOF

* General clean up of VOF model and include mesh velocity and porosity into EV stabilization

* Allow use of lumped mass matrix with FCT

* Remove old tests on NCLS

* Add tests on NCLS via Context

* Add test for vof using context

* Modify default parameter on ncls test

* Make automated tests for VOF

* delete old test on VOF

* change edge_based_cfl for NCLS

* Add automated tests for NCLS with EV

* Remove old (non automated) test on NCLS with EV

* Add a default dummy value to epsCoupez
zhang-alvin pushed a commit that referenced this pull request Oct 20, 2017
* Latest edits for RANS2P dambreak problem

* fixed typo Dit->Dict

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* - Added the support for imposing the velocity BC for particles; particle_velocityList must be supported just like particle_sdfList.
- Added the support for simulating granular material; In this case granular_vel_Calc, and granular_sdf_Calc must be supported which calculate the velocity and sd field for any particle i.
- Bug fix in defining the surface penalty constant.
- Added the suport to export a single sd field for granular material simulations.

* Applied the fixes from
f8fdac4 [f8fdac4]
origin/rans3p_bc

* Testing Proteus integration.

* Archive bathymetry and water elevation

* added surface area check

* Debugging force calculations.

* Compute normalx and normaly vectors

* sdf debugging.

* add necessary variables in SW2DCV.py for reflecting boundary conditions

* change dam over bumps to use new reflecting BCs

* change default mesh to unstructured

* Added the surface area check and viscous forces from rans3p_bc
80601e0

* test reflecting BCs over dam break over bumps with non rectangular domain

* fixed parallel force calc for ibm in 2D

* fixed parallel force calc for ibm in 2D

* Changes to work with multiple particles.

* Add test for gauges

* fixed merge

* deep copy into dof[:] instead change dof reference to new array

* Changes to get 3D IB case working.

* Several changes to SW2DCV.h, SW2DCV.py and cSW2DCP.pyx. Mainly to change regularization and improve robustness

* ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame

* Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"

This reverts commit b6ea6dd.

* Debugging IB particle forces.

* stabilization stuff

* 3D Mesh Reconstruction (#589)

Add 3D capability for SCOREC mesh-reconstruction from Proteus mesh data structures.

* ENH: Added serial 3D mesh reconstruction capability. Littered with debug statements

* MAINT: Removed debug statements and added doc strings for some conditionals. Parallel seems to work so long as partitioning is set correctly

* FIX: prevent boundary elements from collapsing by classifying exterior edge entities as model edges

* FIX: resolve assert if multiregion domain and add logic to inherit node materials from boundary materials in 3D

* fixed typo Dit->Dict (#578)

* FIX: only have owning edges send model info

* Revert "Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"" (#588)

This turns on the hard-coded `size_scale` and `size_frame` fields for the `anisotropicProteus` option.
This reverts commit 31f5dfa.

* Added python script that creates symbolic links needed for proteus build

* Change the place where the low order dissipative matrix is computed

* Add function in c++ to compute the LO dissipative matrix, the edge_based_cfl and others (smoothness indicator and EV residual)

* Compute desired dt to fulfill positivity constraints from within choose_dt in RKEV

* Remove some computations on function that computes the edge_based_cfl

* Change again place where dLow is being computed

* Avoid computing dLow twice if we are in the first stage of the SSP method

* Add minor bug in SW2DCV.py

* Fixes the issue for running the ib cases in parallel, for 2D and 3D

* Archive quantDOFs (if the model has it)

* Adjust dt before calculateResidual based on 2nd order solution

* Change flags in solvers for SWEs to turn off part of the code in the 2nd call of calculateResidual

* This is a branch to test the different methods to apply no slip boundary conditions on IBs,
- The important part of this commit is applying the one-sided penalty terms only inside the IB, not outside; this is important to make sure that the boundary layer around the bodies are not modified; This finally makes sure that drag calculation is not affected by the source terms introduced at the fluid-solid interface.
- Another thing that is tested in this commit is adding dV*(1.0 - H_s)*C_vol*(u-u_s)*rho term to the force terms; this is to make sure that the momentum loss inside the IBs are taken into account as well. However, this requiers that u=us is satisfied inside the IB up to a fairly tight tolerance, otherwise large alpha and beta constants will results in a non-zero contribution in this exrpression.

* Add 2D paraboloid test

* Add 1D paraboloid test

* comment out pessure stabilization terms in RANS3PF2D

* This commit contains two different taks:
1- Fixing the issue with imposing the u=u_s at the inner nodes of the IB; most importantly the last five (except the third from last) chunk of the changes in RANS3PF2D.h are for this purpose. The pressure gradient term effect was also ignorded in the evaluateCoefficient method
2- WIP backend for the adaptive mesh refinment at the fluid-solid interface was added, but this is not working at this point

* Applying the changes form RANS3PF2D.h to RANS3PF.h

* Clang formated

* bug fix for particle simulation

* Adjoint stabilization.

* merge in orgin/master

* version of rans2p2d with no stabilization in momentum equation

* Bug fix in the RANS3PF for the cases where multiple particles are simulated.
The penalty terms should have been applied to all particles

* re-enabled shock capturing

* Fixed the bug for simulating multiple particles in 3D.

* Compute entropy residual based on flat bottom (b(x)=0)

* Add more than one gauge to test gauges with SWEs

* Add gauges and correct location of dam in Malpasset test

* Updated the mesh adaptivity for solid level set.
This needs to be modified for moving objects, since there is a lag between adapted mesh and the zero level set

* added hard-coded signed distance function

* corrected sdf for cavity test

* added compressible (non-conservative) form of momentum

To run as it has been in prior releases
COMPRESSIBLE_FORM=0.0
MOMENTUM_SGE=1.0 (turns off all subgrid error in momentum)
VELOCITY_SGE=1.0 (turns off velocity subgrid error in momentum)
PRESSURE_SGE=1.0 (turns off pressure subgrid error in momentum)

* fixed non-conservative time derivative and weak BC's in nc form

* re-enable density scalings

* switched to HamiltonianJacobian term

* cleaned up non-conservative form

* turn off density scaling in rho-scaled mass and advection

* switch to scalar diffusion in PCD laplace operator

* added mass lumping for pcd mass operators

* Adds a linearSmootherOptions tuple.
     - In our work, we've found that preconditioner settings can
       affect performance.  To make it easy to switch between these
       settings I've added a tuple that allows users to specify
       different preconditioner settings in the numericals and
       physics files.

* Adds a numerical viscosity option for the two-phase PCD operator.

* Changes the COMPRESSIBLE tag to NONCONSERVATIVE.

* Setup incompressible form for 3D case.

* Adds a lumped solver option for PCD mass matrices.

* Gauge compatibility fix with adaptivity (#592)

* FIX: ignore boundary flux contributions at interpart boundaries for element partitioning. Added a warning statement in NumericalSolution to describe limitation.

* MAINT: Removed some std::cout statements from grading algorithm

* MAINT: warning string should apply for any type of partitioning

* DOC/TST: Moved warning to RANS2P to fix Stokes Test that depends on log comparisons

* Use FE for malpasset test

* Cleans up merge with master branch.
       - Removes some leftover merge conflicts.
       - Corrects failing tests after merge.
       - Modifies operator constructor.

* Adds null-space documentation to Sp operator.
     - Adds a constant null space flag to Sp operator
     - Adds more documentation to Sp operator
     - Changes some print statements to logEvent
     - Deletes some code duplication.

* Adds boundary null space flag to OneLevelTransport class.
     - Adds a boundaryCreatesNullSpace attribute to the physics file
     - Adds a bdyNullSpace attribute to OneLevelTransport
     - Fixes hack so global nullspace is now set based on model specs

* Small documentation and code clean up.

* Update asserts in parallel setup.

* Adds phase_function option to RANS2P coefficients class.
     - Allows the user to specify a signed distance and
       vof function for the two-phase NS RANS2P coefficients.
     - Adds and exception handle for two-phase PCD preconditioner
       options.

* cleaned up RANS2P

* replaced Sequential_FixedStep_Simple with Sequential_tnList

* updated Sequential_FixedStep_Simple, part 2

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* added surface area check

* fixed parallel force calc for ibm in 2D

* fixed merge

* Add function calculateRedistancingResidual within NCLS model

* Add calculateRhsSmoothing within NCLS

* Add function calculateResidual_edge_based_EV within NCLS

* Add RKEV to NCLS.py

* Add SSP33 into TimeIntegration.py

* Add PeriodicBoundaryConditions argument into numerical flux: Advection_DiagonalUpwind_IIPG_exterior

* Add 1D test to NCLS model

* Add calculateResidual_entropy_viscosity and calculateJacobian_entropy_viscosity functions to RANS3PF models in 2 and 3D

* Compute CFL not within functions from subgrid errors

* Add convergence test on projection scheme

* Add cMax and cE (for entropy viscosity) parameters to RANS3PF.

* Add option to switch between calculateResidual and calculateResidual_entropy_viscosity based on use_entropy_viscosity in the _n.py model file

* Hard code the option to stop considering pressure gradients. This is for debugging and to study convergence of momentum equations.

* Add changes for entropy viscosity stabilization from 3D to 2D RANS3PF

* Select appropiate Jacobian depending on the type of stabilization (SUPG vs EV)

* Compute forces at quad points (during preStep) if the _p.py file has dictionary forceTerms

* Pass force terms at quad points to RANS3PF model

* Some changes to test for convergence on Proj Scheme

* Add KILL_PRESSURE_TERM to RANS3PF models. This is for debugging and to check convergence of momentum eqns

* Allow Pres.py model to exist without pressure increment model. This is useful to test convergence of the momentum equation

* Pass force terms to evaluate coefficients. Note: this is relevant just for the residual in the interior of the domain

* compute abs(det(J)) inside RANS3PF.py

* debugging prob with self.q[(m,0)]

* fix bug when setting self.q[(m,0)]

* add dV_u to RANS3PF.py model

* Pass q_grad_u, ..., ebqe_grad_u, ... to calculateResidual to save grads for computation of H1 error

* pass grad(u) at quad points in the interior of the elements and the boundaries to calculateResidual

* Add convergence test on NS momentum equations

* set pressure change to zero in postStep if pressureIncrementModel is None

* Let dV_u be the same (by reference) as dV

* Add and pass velocityStar at quad points. This is to fix order of accuracy (from 1st to 2nd) on RANS3PF

* Add u_dof_old, ..., dt and quantDOFs vectors to RANS3PF model. This is to comptue entropy residual

* Correct entropy residual

* Archive quantDOFs

* Compute smoothness indicator per cell for every component

* change test on pure momentum eqns for proj scheme to make it more conveniet for changing viscosity

* Testing an artificial viscosity for NS

* Add files for convergence test on proj scheme

* add density and viscosity as functions at quad points. To test convergence

* change from passing kinematic viscosity to dynamic viscosity

* add structures for density and dynamic viscosity at quad point given by user function

* change formulation to not divide by rho and modify weak entropy residual

* Forgot to add this file

* Add computation of L2 error on pressure if p is in the batch and if the analytical function is given

* Add femSpace to constructor of writeFunctionXdmf to make it work with P2 spaces

* Fix pressure update considering variable time steps and zero out q_massFlux if useRotationalForm=False

* Pass divU to PresInc.h, allow (via a flag) the rhs to not be integrated by parts and modify the rhs via a compatibility condition

* Fix Null Space of PresInc model, add flags for int by parts, kill pressure and correct the velocity

* Pass to PresInc flag for integrating by parts and divergence at quad points

* changes to RANS3PF: change computation of entropy residual, compute div(U) at quad points and add some flags

* change some parameters and force terms to convergence test on pure momentum equations for RANS3PF

* add a 2nd manufactures solution, parameters, flags and others to the conv test for the proj scheme

* add EV to 3D RANS3PF

* fix bug in SUPG stab

* scale entropy residual by rho to make it have units of dynamic viscosity

* Add self.order to C0_AffineLinear and C0_AffineQuadratic on simplexes

* scale hK by 1./order_of_polynomial

* change entropy residual to average instead of max

* add assert about integration by parts of div(U) in PresInc

* turn off modulation on EV coefficient

* turn off modulation also in 3D code

* Change test for convergence

* checkout NCLS model from master

* Fix ratio of time steps to consider first order time integration

* add explicit nonlinear solvers for VOF NCLS and L2Projection all with EV

* add 1D test for NCLS with EV

* Add SSP class to TimeIntegration.py

* change folder name of NCLS 1D test

* rm old folder for 1D test on NCLS

* re-indented RANS2P

* untabified

* untabified RANS2P

* added boundaryFlags > 0 check to Jacobian flux terms too

* re-indented RANS3PF

* re-indented RANS3PF

* updated RANS3P with bdyNullSpace arg

* updated coding guidelines

* switched to sudo=false; removed apt packages

* Updates Chebyshev semi-iteration to inherit from LinearSolver class.
	- Removes IterativeSolver class
	- Documentation edits
	- Moves class from LinearAlgebra module to LinearSolver

* update chrono build

* fix chrono-dependent packages

* re-enabled apt-get packages since they are on the whitelist

* fixed more bdyNullSpace flags and a IBM issue affecting non-IBM

* change rho and mu to be changing in space and time

* fixed RSN2P2D usage of elementBoundaryMaterialTypes

* Add getPeriodicBoundaryConditions argument to Advection_DiagonalUpwind_IIPG_exterior

* Fix bug in explicit nonlinear solvers

* use uStar in the Jacobian of RANS3PF

* remove ENTROPY_VISCOSITY and EDGE_VISCOSITY flags from NCLS model

* Add function updateVelocityFieldAsFunction to use a velocity given by user (if any)

* remove preStep from MyCoefficients on oneD_advection test for NCLS

* change some parameters on oneD_advection test for NCLS

* stop computing lumped mass matrix from within the c++ code

* Add Cz to NCLS. This is the z-component of the matrix C=\int(\nabla(w_j)*w_i*dx)

* Fix linearity preservation property on low order dissipative matrix for NCLS

* Fix how to output phi_s and quantDOFs in NCLS model

* Allow two new stabilizations for NCLS: EV and one based on the smoothness of the soln

* pass dt as argument, assert that ExplicitLumpedMassMatrix solver is used when needed and make a other minor changes

* Allow to choose to different entropy functions for NCLS

* Clean up SSP methods and other parts and add SSP22 to NCLS

* set isDOFBoundary=1 when periodic BCs are set

* add assert to use RKEV with EV stabilization in NCLS

* change the definition of ENTROPY_TYPE

* Add some flags for Coupez method in NCLS

* Fix some flags on ExplicitConsistentMassMatrixWithRedistancing for NCLS

* Add 1D pure advection test

* Add 1D pure advection test for NCLS

* Add 1D test for redistancing in NCLS

* add 2D test for redistancing within NCLS

* untabify cNCLS.pyx and NCLS.py

* fix back == None and != None

* untrack compiled file

* checkout VOF model from mquezada/cleaned_NCLS_and_VOF

* remove some unused flags within VOF model

* Add mesh velocity to EV stabilization in NCLS and do some general cleaning

* Add flag for FCT to ExplicitConsistentMassMatrixForVOF

* General clean up of VOF model and include mesh velocity and porosity into EV stabilization

* Allow use of lumped mass matrix with FCT

* Remove old tests on NCLS

* Add tests on NCLS via Context

* Add test for vof using context

* Modify default parameter on ncls test

* Make automated tests for VOF

* delete old test on VOF

* change edge_based_cfl for NCLS

* Add automated tests for NCLS with EV

* Remove old (non automated) test on NCLS with EV

* Add a default dummy value to epsCoupez
zhang-alvin pushed a commit that referenced this pull request Oct 21, 2017
zhang-alvin pushed a commit that referenced this pull request Oct 21, 2017
* SDF function now takes the particle index as the first argument rather than time

* Fixed extra parentheses error.

* MBD: added separated mesh motion function (translation/rotation)

* reintroduced MeshAdaptPUMI in setup.py

* Setting particle velocity.

* Adding angular velocities.

* Added angular velocity to particle acceleration. Added viscous stress term to force calcualtion.

* debugging particle forces in RANS3PF2D

* Add 1D Riemann problem

* SWEs: copy SSP33 method from mwf implementation

* SWEs: checkoyt SW2DCV.py from mquezada/second_order_SWEs

* SWEs: checkout SW2DCV.h from mquezada/second_order_SWEs

* SWEs: checkout cSW2DCV.pyx from mquezada/second_order_SWEs

* SWEs: add SSP33 class within TimeIntegration

* SWEs: Add explicit solvers for SWEs

* Cekees/mbd/chrono (#570)

* re-enabled Nitsche adjoint for pinc

* updated optimized pressure calculation for projection scheme

* enabled optimized pressure solve for rans3p

* enabled optimized pressure solve for rans3p

* fixed mass flux for rotational form of pressure calc

* worked on isotropic interface size field

* fix 2D Darcy term and isotropic adaptive scheme

* update stack with fixed zoltan build

* SWEs: Change initial conditions for 1D Riemann problem

* SWEs: update to latest version of SWEs code from branch mquezada/second_order_SWEs

* updated hashstack (chrono)

* enabling using Z value of mesh input for bathy

* works with malpasset

* removed irrlicht dependency

* added velocity error estimate

* Fixx problem with FCT

* Add problem: dam over bumps

* Add Malpasset test

* Fix issue (for reading bathymetry) when merging some changes

* Minor change in FCT step

* added unstructured test to sw_hump case

* use Context in test files and archive bathy as mesh

* added user defined size_field ("isotropicProteus" option)

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a Chebyshev semi-iteration solver.
     - Add a new class to create and apply a Chebyshev semi-iteration
     - Introduces several tests to verify resonable output
     - Adds a new function for turning dense numpy arrays
       into petsc4py matrices (really only useful for testing)

* Modifications made for parallel implementation.

* Fixed typo in setup.py.

* Creates a selfp class in Proteus.

* Removed unnecessary MPI_barriers.

* Refactors matrix construction to reduce parallel overhead.

* Adds RANS2P2D functions for building operators.

* PCD RANS2P with parallel support.

* Updates NumericalAnalytics for multiphyics problems.
	- Adds a csv file exporter.

* Updated TestTools utilities.

* Changes Chebyshev Semi-Iteration to be consistent with IFISS

* Adds a parallel info tracker for multilevel meshes.
     - Fixes a broken test.

* Latest edits for RANS2P dambreak problem

* fixed typo Dit->Dict

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* - Added the support for imposing the velocity BC for particles; particle_velocityList must be supported just like particle_sdfList.
- Added the support for simulating granular material; In this case granular_vel_Calc, and granular_sdf_Calc must be supported which calculate the velocity and sd field for any particle i.
- Bug fix in defining the surface penalty constant.
- Added the suport to export a single sd field for granular material simulations.

* Applied the fixes from
f8fdac4 [f8fdac4]
origin/rans3p_bc

* Testing Proteus integration.

* Archive bathymetry and water elevation

* added surface area check

* Debugging force calculations.

* Compute normalx and normaly vectors

* sdf debugging.

* add necessary variables in SW2DCV.py for reflecting boundary conditions

* change dam over bumps to use new reflecting BCs

* change default mesh to unstructured

* Added the surface area check and viscous forces from rans3p_bc
80601e0

* test reflecting BCs over dam break over bumps with non rectangular domain

* fixed parallel force calc for ibm in 2D

* fixed parallel force calc for ibm in 2D

* Changes to work with multiple particles.

* Add test for gauges

* fixed merge

* deep copy into dof[:] instead change dof reference to new array

* Changes to get 3D IB case working.

* Several changes to SW2DCV.h, SW2DCV.py and cSW2DCP.pyx. Mainly to change regularization and improve robustness

* ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame

* Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"

This reverts commit b6ea6dd.

* Debugging IB particle forces.

* stabilization stuff

* 3D Mesh Reconstruction (#589)

Add 3D capability for SCOREC mesh-reconstruction from Proteus mesh data structures.

* ENH: Added serial 3D mesh reconstruction capability. Littered with debug statements

* MAINT: Removed debug statements and added doc strings for some conditionals. Parallel seems to work so long as partitioning is set correctly

* FIX: prevent boundary elements from collapsing by classifying exterior edge entities as model edges

* FIX: resolve assert if multiregion domain and add logic to inherit node materials from boundary materials in 3D

* fixed typo Dit->Dict (#578)

* FIX: only have owning edges send model info

* Revert "Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"" (#588)

This turns on the hard-coded `size_scale` and `size_frame` fields for the `anisotropicProteus` option.
This reverts commit 31f5dfa.

* Added python script that creates symbolic links needed for proteus build

* Change the place where the low order dissipative matrix is computed

* Add function in c++ to compute the LO dissipative matrix, the edge_based_cfl and others (smoothness indicator and EV residual)

* Compute desired dt to fulfill positivity constraints from within choose_dt in RKEV

* Remove some computations on function that computes the edge_based_cfl

* Change again place where dLow is being computed

* Avoid computing dLow twice if we are in the first stage of the SSP method

* Add minor bug in SW2DCV.py

* Fixes the issue for running the ib cases in parallel, for 2D and 3D

* Archive quantDOFs (if the model has it)

* Adjust dt before calculateResidual based on 2nd order solution

* Change flags in solvers for SWEs to turn off part of the code in the 2nd call of calculateResidual

* This is a branch to test the different methods to apply no slip boundary conditions on IBs,
- The important part of this commit is applying the one-sided penalty terms only inside the IB, not outside; this is important to make sure that the boundary layer around the bodies are not modified; This finally makes sure that drag calculation is not affected by the source terms introduced at the fluid-solid interface.
- Another thing that is tested in this commit is adding dV*(1.0 - H_s)*C_vol*(u-u_s)*rho term to the force terms; this is to make sure that the momentum loss inside the IBs are taken into account as well. However, this requiers that u=us is satisfied inside the IB up to a fairly tight tolerance, otherwise large alpha and beta constants will results in a non-zero contribution in this exrpression.

* Add 2D paraboloid test

* Add 1D paraboloid test

* comment out pessure stabilization terms in RANS3PF2D

* This commit contains two different taks:
1- Fixing the issue with imposing the u=u_s at the inner nodes of the IB; most importantly the last five (except the third from last) chunk of the changes in RANS3PF2D.h are for this purpose. The pressure gradient term effect was also ignorded in the evaluateCoefficient method
2- WIP backend for the adaptive mesh refinment at the fluid-solid interface was added, but this is not working at this point

* Applying the changes form RANS3PF2D.h to RANS3PF.h

* Clang formated

* bug fix for particle simulation

* Adjoint stabilization.

* merge in orgin/master

* version of rans2p2d with no stabilization in momentum equation

* Bug fix in the RANS3PF for the cases where multiple particles are simulated.
The penalty terms should have been applied to all particles

* re-enabled shock capturing

* Fixed the bug for simulating multiple particles in 3D.

* Compute entropy residual based on flat bottom (b(x)=0)

* Add more than one gauge to test gauges with SWEs

* Add gauges and correct location of dam in Malpasset test

* Updated the mesh adaptivity for solid level set.
This needs to be modified for moving objects, since there is a lag between adapted mesh and the zero level set

* added hard-coded signed distance function

* corrected sdf for cavity test

* added compressible (non-conservative) form of momentum

To run as it has been in prior releases
COMPRESSIBLE_FORM=0.0
MOMENTUM_SGE=1.0 (turns off all subgrid error in momentum)
VELOCITY_SGE=1.0 (turns off velocity subgrid error in momentum)
PRESSURE_SGE=1.0 (turns off pressure subgrid error in momentum)

* fixed non-conservative time derivative and weak BC's in nc form

* re-enable density scalings

* switched to HamiltonianJacobian term

* cleaned up non-conservative form

* turn off density scaling in rho-scaled mass and advection

* switch to scalar diffusion in PCD laplace operator

* added mass lumping for pcd mass operators

* Adds a linearSmootherOptions tuple.
     - In our work, we've found that preconditioner settings can
       affect performance.  To make it easy to switch between these
       settings I've added a tuple that allows users to specify
       different preconditioner settings in the numericals and
       physics files.

* Adds a numerical viscosity option for the two-phase PCD operator.

* Changes the COMPRESSIBLE tag to NONCONSERVATIVE.

* Setup incompressible form for 3D case.

* Adds a lumped solver option for PCD mass matrices.

* Gauge compatibility fix with adaptivity (#592)

* FIX: ignore boundary flux contributions at interpart boundaries for element partitioning. Added a warning statement in NumericalSolution to describe limitation.

* MAINT: Removed some std::cout statements from grading algorithm

* MAINT: warning string should apply for any type of partitioning

* DOC/TST: Moved warning to RANS2P to fix Stokes Test that depends on log comparisons

* Use FE for malpasset test

* Cleans up merge with master branch.
       - Removes some leftover merge conflicts.
       - Corrects failing tests after merge.
       - Modifies operator constructor.

* Adds null-space documentation to Sp operator.
     - Adds a constant null space flag to Sp operator
     - Adds more documentation to Sp operator
     - Changes some print statements to logEvent
     - Deletes some code duplication.

* Adds boundary null space flag to OneLevelTransport class.
     - Adds a boundaryCreatesNullSpace attribute to the physics file
     - Adds a bdyNullSpace attribute to OneLevelTransport
     - Fixes hack so global nullspace is now set based on model specs

* Small documentation and code clean up.

* Update asserts in parallel setup.

* Adds phase_function option to RANS2P coefficients class.
     - Allows the user to specify a signed distance and
       vof function for the two-phase NS RANS2P coefficients.
     - Adds and exception handle for two-phase PCD preconditioner
       options.

* cleaned up RANS2P

* replaced Sequential_FixedStep_Simple with Sequential_tnList

* updated Sequential_FixedStep_Simple, part 2

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* added surface area check

* fixed parallel force calc for ibm in 2D

* fixed merge

* Add function calculateRedistancingResidual within NCLS model

* Add calculateRhsSmoothing within NCLS

* Add function calculateResidual_edge_based_EV within NCLS

* Add RKEV to NCLS.py

* Add SSP33 into TimeIntegration.py

* Add PeriodicBoundaryConditions argument into numerical flux: Advection_DiagonalUpwind_IIPG_exterior

* Add 1D test to NCLS model

* Add calculateResidual_entropy_viscosity and calculateJacobian_entropy_viscosity functions to RANS3PF models in 2 and 3D

* Compute CFL not within functions from subgrid errors

* Add convergence test on projection scheme

* Add cMax and cE (for entropy viscosity) parameters to RANS3PF.

* Add option to switch between calculateResidual and calculateResidual_entropy_viscosity based on use_entropy_viscosity in the _n.py model file

* Hard code the option to stop considering pressure gradients. This is for debugging and to study convergence of momentum equations.

* Add changes for entropy viscosity stabilization from 3D to 2D RANS3PF

* Select appropiate Jacobian depending on the type of stabilization (SUPG vs EV)

* Compute forces at quad points (during preStep) if the _p.py file has dictionary forceTerms

* Pass force terms at quad points to RANS3PF model

* Some changes to test for convergence on Proj Scheme

* Add KILL_PRESSURE_TERM to RANS3PF models. This is for debugging and to check convergence of momentum eqns

* Allow Pres.py model to exist without pressure increment model. This is useful to test convergence of the momentum equation

* Pass force terms to evaluate coefficients. Note: this is relevant just for the residual in the interior of the domain

* compute abs(det(J)) inside RANS3PF.py

* debugging prob with self.q[(m,0)]

* fix bug when setting self.q[(m,0)]

* add dV_u to RANS3PF.py model

* Pass q_grad_u, ..., ebqe_grad_u, ... to calculateResidual to save grads for computation of H1 error

* pass grad(u) at quad points in the interior of the elements and the boundaries to calculateResidual

* Add convergence test on NS momentum equations

* set pressure change to zero in postStep if pressureIncrementModel is None

* Let dV_u be the same (by reference) as dV

* Add and pass velocityStar at quad points. This is to fix order of accuracy (from 1st to 2nd) on RANS3PF

* Add u_dof_old, ..., dt and quantDOFs vectors to RANS3PF model. This is to comptue entropy residual

* Correct entropy residual

* Archive quantDOFs

* Compute smoothness indicator per cell for every component

* change test on pure momentum eqns for proj scheme to make it more conveniet for changing viscosity

* Testing an artificial viscosity for NS

* Add files for convergence test on proj scheme

* add density and viscosity as functions at quad points. To test convergence

* change from passing kinematic viscosity to dynamic viscosity

* add structures for density and dynamic viscosity at quad point given by user function

* change formulation to not divide by rho and modify weak entropy residual

* Forgot to add this file

* Add computation of L2 error on pressure if p is in the batch and if the analytical function is given

* Add femSpace to constructor of writeFunctionXdmf to make it work with P2 spaces

* Fix pressure update considering variable time steps and zero out q_massFlux if useRotationalForm=False

* Pass divU to PresInc.h, allow (via a flag) the rhs to not be integrated by parts and modify the rhs via a compatibility condition

* Fix Null Space of PresInc model, add flags for int by parts, kill pressure and correct the velocity

* Pass to PresInc flag for integrating by parts and divergence at quad points

* changes to RANS3PF: change computation of entropy residual, compute div(U) at quad points and add some flags

* change some parameters and force terms to convergence test on pure momentum equations for RANS3PF

* add a 2nd manufactures solution, parameters, flags and others to the conv test for the proj scheme

* add EV to 3D RANS3PF

* fix bug in SUPG stab

* scale entropy residual by rho to make it have units of dynamic viscosity

* Add self.order to C0_AffineLinear and C0_AffineQuadratic on simplexes

* scale hK by 1./order_of_polynomial

* change entropy residual to average instead of max

* add assert about integration by parts of div(U) in PresInc

* turn off modulation on EV coefficient

* turn off modulation also in 3D code

* Change test for convergence

* checkout NCLS model from master

* Fix ratio of time steps to consider first order time integration

* re-indented RANS2P

* untabified

* untabified RANS2P

* added boundaryFlags > 0 check to Jacobian flux terms too

* re-indented RANS3PF

* re-indented RANS3PF

* updated RANS3P with bdyNullSpace arg

* updated coding guidelines

* switched to sudo=false; removed apt packages

* Updates Chebyshev semi-iteration to inherit from LinearSolver class.
	- Removes IterativeSolver class
	- Documentation edits
	- Moves class from LinearAlgebra module to LinearSolver

* update chrono build

* fix chrono-dependent packages

* re-enabled apt-get packages since they are on the whitelist

* fixed assert(phis)

* slight update to makefile
zhang-alvin pushed a commit that referenced this pull request Oct 21, 2017
* SDF function now takes the particle index as the first argument rather than time

* Fixed extra parentheses error.

* MBD: added separated mesh motion function (translation/rotation)

* reintroduced MeshAdaptPUMI in setup.py

* Setting particle velocity.

* Adding angular velocities.

* Added angular velocity to particle acceleration. Added viscous stress term to force calcualtion.

* debugging particle forces in RANS3PF2D

* Add 1D Riemann problem

* SWEs: copy SSP33 method from mwf implementation

* SWEs: checkoyt SW2DCV.py from mquezada/second_order_SWEs

* SWEs: checkout SW2DCV.h from mquezada/second_order_SWEs

* SWEs: checkout cSW2DCV.pyx from mquezada/second_order_SWEs

* SWEs: add SSP33 class within TimeIntegration

* SWEs: Add explicit solvers for SWEs

* Cekees/mbd/chrono (#570)

* re-enabled Nitsche adjoint for pinc

* updated optimized pressure calculation for projection scheme

* enabled optimized pressure solve for rans3p

* enabled optimized pressure solve for rans3p

* fixed mass flux for rotational form of pressure calc

* worked on isotropic interface size field

* fix 2D Darcy term and isotropic adaptive scheme

* update stack with fixed zoltan build

* SWEs: Change initial conditions for 1D Riemann problem

* SWEs: update to latest version of SWEs code from branch mquezada/second_order_SWEs

* updated hashstack (chrono)

* enabling using Z value of mesh input for bathy

* works with malpasset

* removed irrlicht dependency

* added velocity error estimate

* Fixx problem with FCT

* Add problem: dam over bumps

* Add Malpasset test

* Fix issue (for reading bathymetry) when merging some changes

* Minor change in FCT step

* added unstructured test to sw_hump case

* use Context in test files and archive bathy as mesh

* added user defined size_field ("isotropicProteus" option)

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a Chebyshev semi-iteration solver.
     - Add a new class to create and apply a Chebyshev semi-iteration
     - Introduces several tests to verify resonable output
     - Adds a new function for turning dense numpy arrays
       into petsc4py matrices (really only useful for testing)

* Modifications made for parallel implementation.

* Fixed typo in setup.py.

* Creates a selfp class in Proteus.

* Removed unnecessary MPI_barriers.

* Refactors matrix construction to reduce parallel overhead.

* Adds RANS2P2D functions for building operators.

* PCD RANS2P with parallel support.

* Updates NumericalAnalytics for multiphyics problems.
	- Adds a csv file exporter.

* Updated TestTools utilities.

* Changes Chebyshev Semi-Iteration to be consistent with IFISS

* Adds a parallel info tracker for multilevel meshes.
     - Fixes a broken test.

* Latest edits for RANS2P dambreak problem

* fixed typo Dit->Dict

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* - Added the support for imposing the velocity BC for particles; particle_velocityList must be supported just like particle_sdfList.
- Added the support for simulating granular material; In this case granular_vel_Calc, and granular_sdf_Calc must be supported which calculate the velocity and sd field for any particle i.
- Bug fix in defining the surface penalty constant.
- Added the suport to export a single sd field for granular material simulations.

* Applied the fixes from
f8fdac4 [f8fdac4]
origin/rans3p_bc

* Testing Proteus integration.

* Archive bathymetry and water elevation

* added surface area check

* Debugging force calculations.

* Compute normalx and normaly vectors

* sdf debugging.

* add necessary variables in SW2DCV.py for reflecting boundary conditions

* change dam over bumps to use new reflecting BCs

* change default mesh to unstructured

* Added the surface area check and viscous forces from rans3p_bc
80601e0

* test reflecting BCs over dam break over bumps with non rectangular domain

* fixed parallel force calc for ibm in 2D

* fixed parallel force calc for ibm in 2D

* Changes to work with multiple particles.

* Add test for gauges

* fixed merge

* deep copy into dof[:] instead change dof reference to new array

* Changes to get 3D IB case working.

* Several changes to SW2DCV.h, SW2DCV.py and cSW2DCP.pyx. Mainly to change regularization and improve robustness

* ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame

* Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"

This reverts commit b6ea6dd.

* Debugging IB particle forces.

* stabilization stuff

* 3D Mesh Reconstruction (#589)

Add 3D capability for SCOREC mesh-reconstruction from Proteus mesh data structures.

* ENH: Added serial 3D mesh reconstruction capability. Littered with debug statements

* MAINT: Removed debug statements and added doc strings for some conditionals. Parallel seems to work so long as partitioning is set correctly

* FIX: prevent boundary elements from collapsing by classifying exterior edge entities as model edges

* FIX: resolve assert if multiregion domain and add logic to inherit node materials from boundary materials in 3D

* fixed typo Dit->Dict (#578)

* FIX: only have owning edges send model info

* Revert "Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"" (#588)

This turns on the hard-coded `size_scale` and `size_frame` fields for the `anisotropicProteus` option.
This reverts commit 31f5dfa.

* Added python script that creates symbolic links needed for proteus build

* Change the place where the low order dissipative matrix is computed

* Add function in c++ to compute the LO dissipative matrix, the edge_based_cfl and others (smoothness indicator and EV residual)

* Compute desired dt to fulfill positivity constraints from within choose_dt in RKEV

* Remove some computations on function that computes the edge_based_cfl

* Change again place where dLow is being computed

* Avoid computing dLow twice if we are in the first stage of the SSP method

* Add minor bug in SW2DCV.py

* Fixes the issue for running the ib cases in parallel, for 2D and 3D

* Archive quantDOFs (if the model has it)

* Adjust dt before calculateResidual based on 2nd order solution

* Change flags in solvers for SWEs to turn off part of the code in the 2nd call of calculateResidual

* This is a branch to test the different methods to apply no slip boundary conditions on IBs,
- The important part of this commit is applying the one-sided penalty terms only inside the IB, not outside; this is important to make sure that the boundary layer around the bodies are not modified; This finally makes sure that drag calculation is not affected by the source terms introduced at the fluid-solid interface.
- Another thing that is tested in this commit is adding dV*(1.0 - H_s)*C_vol*(u-u_s)*rho term to the force terms; this is to make sure that the momentum loss inside the IBs are taken into account as well. However, this requiers that u=us is satisfied inside the IB up to a fairly tight tolerance, otherwise large alpha and beta constants will results in a non-zero contribution in this exrpression.

* Add 2D paraboloid test

* Add 1D paraboloid test

* comment out pessure stabilization terms in RANS3PF2D

* This commit contains two different taks:
1- Fixing the issue with imposing the u=u_s at the inner nodes of the IB; most importantly the last five (except the third from last) chunk of the changes in RANS3PF2D.h are for this purpose. The pressure gradient term effect was also ignorded in the evaluateCoefficient method
2- WIP backend for the adaptive mesh refinment at the fluid-solid interface was added, but this is not working at this point

* Applying the changes form RANS3PF2D.h to RANS3PF.h

* Clang formated

* bug fix for particle simulation

* Adjoint stabilization.

* merge in orgin/master

* version of rans2p2d with no stabilization in momentum equation

* Bug fix in the RANS3PF for the cases where multiple particles are simulated.
The penalty terms should have been applied to all particles

* re-enabled shock capturing

* Fixed the bug for simulating multiple particles in 3D.

* Compute entropy residual based on flat bottom (b(x)=0)

* Add more than one gauge to test gauges with SWEs

* Add gauges and correct location of dam in Malpasset test

* Updated the mesh adaptivity for solid level set.
This needs to be modified for moving objects, since there is a lag between adapted mesh and the zero level set

* added hard-coded signed distance function

* corrected sdf for cavity test

* added compressible (non-conservative) form of momentum

To run as it has been in prior releases
COMPRESSIBLE_FORM=0.0
MOMENTUM_SGE=1.0 (turns off all subgrid error in momentum)
VELOCITY_SGE=1.0 (turns off velocity subgrid error in momentum)
PRESSURE_SGE=1.0 (turns off pressure subgrid error in momentum)

* fixed non-conservative time derivative and weak BC's in nc form

* re-enable density scalings

* switched to HamiltonianJacobian term

* cleaned up non-conservative form

* turn off density scaling in rho-scaled mass and advection

* switch to scalar diffusion in PCD laplace operator

* added mass lumping for pcd mass operators

* Adds a linearSmootherOptions tuple.
     - In our work, we've found that preconditioner settings can
       affect performance.  To make it easy to switch between these
       settings I've added a tuple that allows users to specify
       different preconditioner settings in the numericals and
       physics files.

* Adds a numerical viscosity option for the two-phase PCD operator.

* Changes the COMPRESSIBLE tag to NONCONSERVATIVE.

* Setup incompressible form for 3D case.

* Adds a lumped solver option for PCD mass matrices.

* Gauge compatibility fix with adaptivity (#592)

* FIX: ignore boundary flux contributions at interpart boundaries for element partitioning. Added a warning statement in NumericalSolution to describe limitation.

* MAINT: Removed some std::cout statements from grading algorithm

* MAINT: warning string should apply for any type of partitioning

* DOC/TST: Moved warning to RANS2P to fix Stokes Test that depends on log comparisons

* Use FE for malpasset test

* Cleans up merge with master branch.
       - Removes some leftover merge conflicts.
       - Corrects failing tests after merge.
       - Modifies operator constructor.

* Adds null-space documentation to Sp operator.
     - Adds a constant null space flag to Sp operator
     - Adds more documentation to Sp operator
     - Changes some print statements to logEvent
     - Deletes some code duplication.

* Adds boundary null space flag to OneLevelTransport class.
     - Adds a boundaryCreatesNullSpace attribute to the physics file
     - Adds a bdyNullSpace attribute to OneLevelTransport
     - Fixes hack so global nullspace is now set based on model specs

* Small documentation and code clean up.

* Update asserts in parallel setup.

* Adds phase_function option to RANS2P coefficients class.
     - Allows the user to specify a signed distance and
       vof function for the two-phase NS RANS2P coefficients.
     - Adds and exception handle for two-phase PCD preconditioner
       options.

* cleaned up RANS2P

* replaced Sequential_FixedStep_Simple with Sequential_tnList

* updated Sequential_FixedStep_Simple, part 2

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* added surface area check

* fixed parallel force calc for ibm in 2D

* fixed merge

* Add function calculateRedistancingResidual within NCLS model

* Add calculateRhsSmoothing within NCLS

* Add function calculateResidual_edge_based_EV within NCLS

* Add RKEV to NCLS.py

* Add SSP33 into TimeIntegration.py

* Add PeriodicBoundaryConditions argument into numerical flux: Advection_DiagonalUpwind_IIPG_exterior

* Add 1D test to NCLS model

* Add calculateResidual_entropy_viscosity and calculateJacobian_entropy_viscosity functions to RANS3PF models in 2 and 3D

* Compute CFL not within functions from subgrid errors

* Add convergence test on projection scheme

* Add cMax and cE (for entropy viscosity) parameters to RANS3PF.

* Add option to switch between calculateResidual and calculateResidual_entropy_viscosity based on use_entropy_viscosity in the _n.py model file

* Hard code the option to stop considering pressure gradients. This is for debugging and to study convergence of momentum equations.

* Add changes for entropy viscosity stabilization from 3D to 2D RANS3PF

* Select appropiate Jacobian depending on the type of stabilization (SUPG vs EV)

* Compute forces at quad points (during preStep) if the _p.py file has dictionary forceTerms

* Pass force terms at quad points to RANS3PF model

* Some changes to test for convergence on Proj Scheme

* Add KILL_PRESSURE_TERM to RANS3PF models. This is for debugging and to check convergence of momentum eqns

* Allow Pres.py model to exist without pressure increment model. This is useful to test convergence of the momentum equation

* Pass force terms to evaluate coefficients. Note: this is relevant just for the residual in the interior of the domain

* compute abs(det(J)) inside RANS3PF.py

* debugging prob with self.q[(m,0)]

* fix bug when setting self.q[(m,0)]

* add dV_u to RANS3PF.py model

* Pass q_grad_u, ..., ebqe_grad_u, ... to calculateResidual to save grads for computation of H1 error

* pass grad(u) at quad points in the interior of the elements and the boundaries to calculateResidual

* Add convergence test on NS momentum equations

* set pressure change to zero in postStep if pressureIncrementModel is None

* Let dV_u be the same (by reference) as dV

* Add and pass velocityStar at quad points. This is to fix order of accuracy (from 1st to 2nd) on RANS3PF

* Add u_dof_old, ..., dt and quantDOFs vectors to RANS3PF model. This is to comptue entropy residual

* Correct entropy residual

* Archive quantDOFs

* Compute smoothness indicator per cell for every component

* change test on pure momentum eqns for proj scheme to make it more conveniet for changing viscosity

* Testing an artificial viscosity for NS

* Add files for convergence test on proj scheme

* add density and viscosity as functions at quad points. To test convergence

* change from passing kinematic viscosity to dynamic viscosity

* add structures for density and dynamic viscosity at quad point given by user function

* change formulation to not divide by rho and modify weak entropy residual

* Forgot to add this file

* Add computation of L2 error on pressure if p is in the batch and if the analytical function is given

* Add femSpace to constructor of writeFunctionXdmf to make it work with P2 spaces

* Fix pressure update considering variable time steps and zero out q_massFlux if useRotationalForm=False

* Pass divU to PresInc.h, allow (via a flag) the rhs to not be integrated by parts and modify the rhs via a compatibility condition

* Fix Null Space of PresInc model, add flags for int by parts, kill pressure and correct the velocity

* Pass to PresInc flag for integrating by parts and divergence at quad points

* changes to RANS3PF: change computation of entropy residual, compute div(U) at quad points and add some flags

* change some parameters and force terms to convergence test on pure momentum equations for RANS3PF

* add a 2nd manufactures solution, parameters, flags and others to the conv test for the proj scheme

* add EV to 3D RANS3PF

* fix bug in SUPG stab

* scale entropy residual by rho to make it have units of dynamic viscosity

* Add self.order to C0_AffineLinear and C0_AffineQuadratic on simplexes

* scale hK by 1./order_of_polynomial

* change entropy residual to average instead of max

* add assert about integration by parts of div(U) in PresInc

* turn off modulation on EV coefficient

* turn off modulation also in 3D code

* Change test for convergence

* checkout NCLS model from master

* Fix ratio of time steps to consider first order time integration

* re-indented RANS2P

* untabified

* untabified RANS2P

* added boundaryFlags > 0 check to Jacobian flux terms too

* re-indented RANS3PF

* re-indented RANS3PF

* updated RANS3P with bdyNullSpace arg

* updated coding guidelines

* switched to sudo=false; removed apt packages

* Updates Chebyshev semi-iteration to inherit from LinearSolver class.
	- Removes IterativeSolver class
	- Documentation edits
	- Moves class from LinearAlgebra module to LinearSolver

* update chrono build

* fix chrono-dependent packages

* re-enabled apt-get packages since they are on the whitelist

* fixed assert(phis)

* slight update to makefile
zhang-alvin pushed a commit that referenced this pull request Oct 21, 2017
* Latest edits for RANS2P dambreak problem

* fixed typo Dit->Dict

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* - Added the support for imposing the velocity BC for particles; particle_velocityList must be supported just like particle_sdfList.
- Added the support for simulating granular material; In this case granular_vel_Calc, and granular_sdf_Calc must be supported which calculate the velocity and sd field for any particle i.
- Bug fix in defining the surface penalty constant.
- Added the suport to export a single sd field for granular material simulations.

* Applied the fixes from
f8fdac4 [f8fdac4]
origin/rans3p_bc

* Testing Proteus integration.

* Archive bathymetry and water elevation

* added surface area check

* Debugging force calculations.

* Compute normalx and normaly vectors

* sdf debugging.

* add necessary variables in SW2DCV.py for reflecting boundary conditions

* change dam over bumps to use new reflecting BCs

* change default mesh to unstructured

* Added the surface area check and viscous forces from rans3p_bc
80601e0

* test reflecting BCs over dam break over bumps with non rectangular domain

* fixed parallel force calc for ibm in 2D

* fixed parallel force calc for ibm in 2D

* Changes to work with multiple particles.

* Add test for gauges

* fixed merge

* deep copy into dof[:] instead change dof reference to new array

* Changes to get 3D IB case working.

* Several changes to SW2DCV.h, SW2DCV.py and cSW2DCP.pyx. Mainly to change regularization and improve robustness

* ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame

* Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"

This reverts commit b6ea6dd.

* Debugging IB particle forces.

* stabilization stuff

* 3D Mesh Reconstruction (#589)

Add 3D capability for SCOREC mesh-reconstruction from Proteus mesh data structures.

* ENH: Added serial 3D mesh reconstruction capability. Littered with debug statements

* MAINT: Removed debug statements and added doc strings for some conditionals. Parallel seems to work so long as partitioning is set correctly

* FIX: prevent boundary elements from collapsing by classifying exterior edge entities as model edges

* FIX: resolve assert if multiregion domain and add logic to inherit node materials from boundary materials in 3D

* fixed typo Dit->Dict (#578)

* FIX: only have owning edges send model info

* Revert "Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"" (#588)

This turns on the hard-coded `size_scale` and `size_frame` fields for the `anisotropicProteus` option.
This reverts commit 31f5dfa.

* Added python script that creates symbolic links needed for proteus build

* Change the place where the low order dissipative matrix is computed

* Add function in c++ to compute the LO dissipative matrix, the edge_based_cfl and others (smoothness indicator and EV residual)

* Compute desired dt to fulfill positivity constraints from within choose_dt in RKEV

* Remove some computations on function that computes the edge_based_cfl

* Change again place where dLow is being computed

* Avoid computing dLow twice if we are in the first stage of the SSP method

* Add minor bug in SW2DCV.py

* Fixes the issue for running the ib cases in parallel, for 2D and 3D

* Archive quantDOFs (if the model has it)

* Adjust dt before calculateResidual based on 2nd order solution

* Change flags in solvers for SWEs to turn off part of the code in the 2nd call of calculateResidual

* This is a branch to test the different methods to apply no slip boundary conditions on IBs,
- The important part of this commit is applying the one-sided penalty terms only inside the IB, not outside; this is important to make sure that the boundary layer around the bodies are not modified; This finally makes sure that drag calculation is not affected by the source terms introduced at the fluid-solid interface.
- Another thing that is tested in this commit is adding dV*(1.0 - H_s)*C_vol*(u-u_s)*rho term to the force terms; this is to make sure that the momentum loss inside the IBs are taken into account as well. However, this requiers that u=us is satisfied inside the IB up to a fairly tight tolerance, otherwise large alpha and beta constants will results in a non-zero contribution in this exrpression.

* Add 2D paraboloid test

* Add 1D paraboloid test

* comment out pessure stabilization terms in RANS3PF2D

* This commit contains two different taks:
1- Fixing the issue with imposing the u=u_s at the inner nodes of the IB; most importantly the last five (except the third from last) chunk of the changes in RANS3PF2D.h are for this purpose. The pressure gradient term effect was also ignorded in the evaluateCoefficient method
2- WIP backend for the adaptive mesh refinment at the fluid-solid interface was added, but this is not working at this point

* Applying the changes form RANS3PF2D.h to RANS3PF.h

* Clang formated

* bug fix for particle simulation

* Adjoint stabilization.

* merge in orgin/master

* version of rans2p2d with no stabilization in momentum equation

* Bug fix in the RANS3PF for the cases where multiple particles are simulated.
The penalty terms should have been applied to all particles

* re-enabled shock capturing

* Fixed the bug for simulating multiple particles in 3D.

* Compute entropy residual based on flat bottom (b(x)=0)

* Add more than one gauge to test gauges with SWEs

* Add gauges and correct location of dam in Malpasset test

* Updated the mesh adaptivity for solid level set.
This needs to be modified for moving objects, since there is a lag between adapted mesh and the zero level set

* added hard-coded signed distance function

* corrected sdf for cavity test

* added compressible (non-conservative) form of momentum

To run as it has been in prior releases
COMPRESSIBLE_FORM=0.0
MOMENTUM_SGE=1.0 (turns off all subgrid error in momentum)
VELOCITY_SGE=1.0 (turns off velocity subgrid error in momentum)
PRESSURE_SGE=1.0 (turns off pressure subgrid error in momentum)

* fixed non-conservative time derivative and weak BC's in nc form

* re-enable density scalings

* switched to HamiltonianJacobian term

* cleaned up non-conservative form

* turn off density scaling in rho-scaled mass and advection

* switch to scalar diffusion in PCD laplace operator

* added mass lumping for pcd mass operators

* Adds a linearSmootherOptions tuple.
     - In our work, we've found that preconditioner settings can
       affect performance.  To make it easy to switch between these
       settings I've added a tuple that allows users to specify
       different preconditioner settings in the numericals and
       physics files.

* Adds a numerical viscosity option for the two-phase PCD operator.

* Changes the COMPRESSIBLE tag to NONCONSERVATIVE.

* Setup incompressible form for 3D case.

* Adds a lumped solver option for PCD mass matrices.

* Gauge compatibility fix with adaptivity (#592)

* FIX: ignore boundary flux contributions at interpart boundaries for element partitioning. Added a warning statement in NumericalSolution to describe limitation.

* MAINT: Removed some std::cout statements from grading algorithm

* MAINT: warning string should apply for any type of partitioning

* DOC/TST: Moved warning to RANS2P to fix Stokes Test that depends on log comparisons

* Use FE for malpasset test

* Cleans up merge with master branch.
       - Removes some leftover merge conflicts.
       - Corrects failing tests after merge.
       - Modifies operator constructor.

* Adds null-space documentation to Sp operator.
     - Adds a constant null space flag to Sp operator
     - Adds more documentation to Sp operator
     - Changes some print statements to logEvent
     - Deletes some code duplication.

* Adds boundary null space flag to OneLevelTransport class.
     - Adds a boundaryCreatesNullSpace attribute to the physics file
     - Adds a bdyNullSpace attribute to OneLevelTransport
     - Fixes hack so global nullspace is now set based on model specs

* Small documentation and code clean up.

* Update asserts in parallel setup.

* Adds phase_function option to RANS2P coefficients class.
     - Allows the user to specify a signed distance and
       vof function for the two-phase NS RANS2P coefficients.
     - Adds and exception handle for two-phase PCD preconditioner
       options.

* cleaned up RANS2P

* replaced Sequential_FixedStep_Simple with Sequential_tnList

* updated Sequential_FixedStep_Simple, part 2

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* added surface area check

* fixed parallel force calc for ibm in 2D

* fixed merge

* Add function calculateRedistancingResidual within NCLS model

* Add calculateRhsSmoothing within NCLS

* Add function calculateResidual_edge_based_EV within NCLS

* Add RKEV to NCLS.py

* Add SSP33 into TimeIntegration.py

* Add PeriodicBoundaryConditions argument into numerical flux: Advection_DiagonalUpwind_IIPG_exterior

* Add 1D test to NCLS model

* Add calculateResidual_entropy_viscosity and calculateJacobian_entropy_viscosity functions to RANS3PF models in 2 and 3D

* Compute CFL not within functions from subgrid errors

* Add convergence test on projection scheme

* Add cMax and cE (for entropy viscosity) parameters to RANS3PF.

* Add option to switch between calculateResidual and calculateResidual_entropy_viscosity based on use_entropy_viscosity in the _n.py model file

* Hard code the option to stop considering pressure gradients. This is for debugging and to study convergence of momentum equations.

* Add changes for entropy viscosity stabilization from 3D to 2D RANS3PF

* Select appropiate Jacobian depending on the type of stabilization (SUPG vs EV)

* Compute forces at quad points (during preStep) if the _p.py file has dictionary forceTerms

* Pass force terms at quad points to RANS3PF model

* Some changes to test for convergence on Proj Scheme

* Add KILL_PRESSURE_TERM to RANS3PF models. This is for debugging and to check convergence of momentum eqns

* Allow Pres.py model to exist without pressure increment model. This is useful to test convergence of the momentum equation

* Pass force terms to evaluate coefficients. Note: this is relevant just for the residual in the interior of the domain

* compute abs(det(J)) inside RANS3PF.py

* debugging prob with self.q[(m,0)]

* fix bug when setting self.q[(m,0)]

* add dV_u to RANS3PF.py model

* Pass q_grad_u, ..., ebqe_grad_u, ... to calculateResidual to save grads for computation of H1 error

* pass grad(u) at quad points in the interior of the elements and the boundaries to calculateResidual

* Add convergence test on NS momentum equations

* set pressure change to zero in postStep if pressureIncrementModel is None

* Let dV_u be the same (by reference) as dV

* Add and pass velocityStar at quad points. This is to fix order of accuracy (from 1st to 2nd) on RANS3PF

* Add u_dof_old, ..., dt and quantDOFs vectors to RANS3PF model. This is to comptue entropy residual

* Correct entropy residual

* Archive quantDOFs

* Compute smoothness indicator per cell for every component

* change test on pure momentum eqns for proj scheme to make it more conveniet for changing viscosity

* Testing an artificial viscosity for NS

* Add files for convergence test on proj scheme

* add density and viscosity as functions at quad points. To test convergence

* change from passing kinematic viscosity to dynamic viscosity

* add structures for density and dynamic viscosity at quad point given by user function

* change formulation to not divide by rho and modify weak entropy residual

* Forgot to add this file

* Add computation of L2 error on pressure if p is in the batch and if the analytical function is given

* Add femSpace to constructor of writeFunctionXdmf to make it work with P2 spaces

* Fix pressure update considering variable time steps and zero out q_massFlux if useRotationalForm=False

* Pass divU to PresInc.h, allow (via a flag) the rhs to not be integrated by parts and modify the rhs via a compatibility condition

* Fix Null Space of PresInc model, add flags for int by parts, kill pressure and correct the velocity

* Pass to PresInc flag for integrating by parts and divergence at quad points

* changes to RANS3PF: change computation of entropy residual, compute div(U) at quad points and add some flags

* change some parameters and force terms to convergence test on pure momentum equations for RANS3PF

* add a 2nd manufactures solution, parameters, flags and others to the conv test for the proj scheme

* add EV to 3D RANS3PF

* fix bug in SUPG stab

* scale entropy residual by rho to make it have units of dynamic viscosity

* Add self.order to C0_AffineLinear and C0_AffineQuadratic on simplexes

* scale hK by 1./order_of_polynomial

* change entropy residual to average instead of max

* add assert about integration by parts of div(U) in PresInc

* turn off modulation on EV coefficient

* turn off modulation also in 3D code

* Change test for convergence

* checkout NCLS model from master

* Fix ratio of time steps to consider first order time integration

* add explicit nonlinear solvers for VOF NCLS and L2Projection all with EV

* add 1D test for NCLS with EV

* Add SSP class to TimeIntegration.py

* change folder name of NCLS 1D test

* rm old folder for 1D test on NCLS

* re-indented RANS2P

* untabified

* untabified RANS2P

* added boundaryFlags > 0 check to Jacobian flux terms too

* re-indented RANS3PF

* re-indented RANS3PF

* updated RANS3P with bdyNullSpace arg

* updated coding guidelines

* switched to sudo=false; removed apt packages

* Updates Chebyshev semi-iteration to inherit from LinearSolver class.
	- Removes IterativeSolver class
	- Documentation edits
	- Moves class from LinearAlgebra module to LinearSolver

* update chrono build

* fix chrono-dependent packages

* re-enabled apt-get packages since they are on the whitelist

* fixed more bdyNullSpace flags and a IBM issue affecting non-IBM

* change rho and mu to be changing in space and time

* fixed RSN2P2D usage of elementBoundaryMaterialTypes

* Add getPeriodicBoundaryConditions argument to Advection_DiagonalUpwind_IIPG_exterior

* Fix bug in explicit nonlinear solvers

* use uStar in the Jacobian of RANS3PF

* remove ENTROPY_VISCOSITY and EDGE_VISCOSITY flags from NCLS model

* Add function updateVelocityFieldAsFunction to use a velocity given by user (if any)

* remove preStep from MyCoefficients on oneD_advection test for NCLS

* change some parameters on oneD_advection test for NCLS

* stop computing lumped mass matrix from within the c++ code

* Add Cz to NCLS. This is the z-component of the matrix C=\int(\nabla(w_j)*w_i*dx)

* Fix linearity preservation property on low order dissipative matrix for NCLS

* Fix how to output phi_s and quantDOFs in NCLS model

* Allow two new stabilizations for NCLS: EV and one based on the smoothness of the soln

* pass dt as argument, assert that ExplicitLumpedMassMatrix solver is used when needed and make a other minor changes

* Allow to choose to different entropy functions for NCLS

* Clean up SSP methods and other parts and add SSP22 to NCLS

* set isDOFBoundary=1 when periodic BCs are set

* add assert to use RKEV with EV stabilization in NCLS

* change the definition of ENTROPY_TYPE

* Add some flags for Coupez method in NCLS

* Fix some flags on ExplicitConsistentMassMatrixWithRedistancing for NCLS

* Add 1D pure advection test

* Add 1D pure advection test for NCLS

* Add 1D test for redistancing in NCLS

* add 2D test for redistancing within NCLS

* untabify cNCLS.pyx and NCLS.py

* fix back == None and != None

* untrack compiled file

* checkout VOF model from mquezada/cleaned_NCLS_and_VOF

* remove some unused flags within VOF model

* Add mesh velocity to EV stabilization in NCLS and do some general cleaning

* Add flag for FCT to ExplicitConsistentMassMatrixForVOF

* General clean up of VOF model and include mesh velocity and porosity into EV stabilization

* Allow use of lumped mass matrix with FCT

* Remove old tests on NCLS

* Add tests on NCLS via Context

* Add test for vof using context

* Modify default parameter on ncls test

* Make automated tests for VOF

* delete old test on VOF

* change edge_based_cfl for NCLS

* Add automated tests for NCLS with EV

* Remove old (non automated) test on NCLS with EV

* Add a default dummy value to epsCoupez
zhang-alvin pushed a commit that referenced this pull request Oct 21, 2017
zhang-alvin pushed a commit that referenced this pull request Oct 21, 2017
* SDF function now takes the particle index as the first argument rather than time

* Fixed extra parentheses error.

* MBD: added separated mesh motion function (translation/rotation)

* reintroduced MeshAdaptPUMI in setup.py

* Setting particle velocity.

* Adding angular velocities.

* Added angular velocity to particle acceleration. Added viscous stress term to force calcualtion.

* debugging particle forces in RANS3PF2D

* Add 1D Riemann problem

* SWEs: copy SSP33 method from mwf implementation

* SWEs: checkoyt SW2DCV.py from mquezada/second_order_SWEs

* SWEs: checkout SW2DCV.h from mquezada/second_order_SWEs

* SWEs: checkout cSW2DCV.pyx from mquezada/second_order_SWEs

* SWEs: add SSP33 class within TimeIntegration

* SWEs: Add explicit solvers for SWEs

* Cekees/mbd/chrono (#570)

* re-enabled Nitsche adjoint for pinc

* updated optimized pressure calculation for projection scheme

* enabled optimized pressure solve for rans3p

* enabled optimized pressure solve for rans3p

* fixed mass flux for rotational form of pressure calc

* worked on isotropic interface size field

* fix 2D Darcy term and isotropic adaptive scheme

* update stack with fixed zoltan build

* SWEs: Change initial conditions for 1D Riemann problem

* SWEs: update to latest version of SWEs code from branch mquezada/second_order_SWEs

* updated hashstack (chrono)

* enabling using Z value of mesh input for bathy

* works with malpasset

* removed irrlicht dependency

* added velocity error estimate

* Fixx problem with FCT

* Add problem: dam over bumps

* Add Malpasset test

* Fix issue (for reading bathymetry) when merging some changes

* Minor change in FCT step

* added unstructured test to sw_hump case

* use Context in test files and archive bathy as mesh

* added user defined size_field ("isotropicProteus" option)

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a Chebyshev semi-iteration solver.
     - Add a new class to create and apply a Chebyshev semi-iteration
     - Introduces several tests to verify resonable output
     - Adds a new function for turning dense numpy arrays
       into petsc4py matrices (really only useful for testing)

* Modifications made for parallel implementation.

* Fixed typo in setup.py.

* Creates a selfp class in Proteus.

* Removed unnecessary MPI_barriers.

* Refactors matrix construction to reduce parallel overhead.

* Adds RANS2P2D functions for building operators.

* PCD RANS2P with parallel support.

* Updates NumericalAnalytics for multiphyics problems.
	- Adds a csv file exporter.

* Updated TestTools utilities.

* Changes Chebyshev Semi-Iteration to be consistent with IFISS

* Adds a parallel info tracker for multilevel meshes.
     - Fixes a broken test.

* Latest edits for RANS2P dambreak problem

* fixed typo Dit->Dict

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* - Added the support for imposing the velocity BC for particles; particle_velocityList must be supported just like particle_sdfList.
- Added the support for simulating granular material; In this case granular_vel_Calc, and granular_sdf_Calc must be supported which calculate the velocity and sd field for any particle i.
- Bug fix in defining the surface penalty constant.
- Added the suport to export a single sd field for granular material simulations.

* Applied the fixes from
f8fdac4 [f8fdac4]
origin/rans3p_bc

* Testing Proteus integration.

* Archive bathymetry and water elevation

* added surface area check

* Debugging force calculations.

* Compute normalx and normaly vectors

* sdf debugging.

* add necessary variables in SW2DCV.py for reflecting boundary conditions

* change dam over bumps to use new reflecting BCs

* change default mesh to unstructured

* Added the surface area check and viscous forces from rans3p_bc
80601e0

* test reflecting BCs over dam break over bumps with non rectangular domain

* fixed parallel force calc for ibm in 2D

* fixed parallel force calc for ibm in 2D

* Changes to work with multiple particles.

* Add test for gauges

* fixed merge

* deep copy into dof[:] instead change dof reference to new array

* Changes to get 3D IB case working.

* Several changes to SW2DCV.h, SW2DCV.py and cSW2DCP.pyx. Mainly to change regularization and improve robustness

* ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame

* Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"

This reverts commit b6ea6dd.

* Debugging IB particle forces.

* stabilization stuff

* 3D Mesh Reconstruction (#589)

Add 3D capability for SCOREC mesh-reconstruction from Proteus mesh data structures.

* ENH: Added serial 3D mesh reconstruction capability. Littered with debug statements

* MAINT: Removed debug statements and added doc strings for some conditionals. Parallel seems to work so long as partitioning is set correctly

* FIX: prevent boundary elements from collapsing by classifying exterior edge entities as model edges

* FIX: resolve assert if multiregion domain and add logic to inherit node materials from boundary materials in 3D

* fixed typo Dit->Dict (#578)

* FIX: only have owning edges send model info

* Revert "Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"" (#588)

This turns on the hard-coded `size_scale` and `size_frame` fields for the `anisotropicProteus` option.
This reverts commit 31f5dfa.

* Added python script that creates symbolic links needed for proteus build

* Change the place where the low order dissipative matrix is computed

* Add function in c++ to compute the LO dissipative matrix, the edge_based_cfl and others (smoothness indicator and EV residual)

* Compute desired dt to fulfill positivity constraints from within choose_dt in RKEV

* Remove some computations on function that computes the edge_based_cfl

* Change again place where dLow is being computed

* Avoid computing dLow twice if we are in the first stage of the SSP method

* Add minor bug in SW2DCV.py

* Fixes the issue for running the ib cases in parallel, for 2D and 3D

* Archive quantDOFs (if the model has it)

* Adjust dt before calculateResidual based on 2nd order solution

* Change flags in solvers for SWEs to turn off part of the code in the 2nd call of calculateResidual

* This is a branch to test the different methods to apply no slip boundary conditions on IBs,
- The important part of this commit is applying the one-sided penalty terms only inside the IB, not outside; this is important to make sure that the boundary layer around the bodies are not modified; This finally makes sure that drag calculation is not affected by the source terms introduced at the fluid-solid interface.
- Another thing that is tested in this commit is adding dV*(1.0 - H_s)*C_vol*(u-u_s)*rho term to the force terms; this is to make sure that the momentum loss inside the IBs are taken into account as well. However, this requiers that u=us is satisfied inside the IB up to a fairly tight tolerance, otherwise large alpha and beta constants will results in a non-zero contribution in this exrpression.

* Add 2D paraboloid test

* Add 1D paraboloid test

* comment out pessure stabilization terms in RANS3PF2D

* This commit contains two different taks:
1- Fixing the issue with imposing the u=u_s at the inner nodes of the IB; most importantly the last five (except the third from last) chunk of the changes in RANS3PF2D.h are for this purpose. The pressure gradient term effect was also ignorded in the evaluateCoefficient method
2- WIP backend for the adaptive mesh refinment at the fluid-solid interface was added, but this is not working at this point

* Applying the changes form RANS3PF2D.h to RANS3PF.h

* Clang formated

* bug fix for particle simulation

* Adjoint stabilization.

* merge in orgin/master

* version of rans2p2d with no stabilization in momentum equation

* Bug fix in the RANS3PF for the cases where multiple particles are simulated.
The penalty terms should have been applied to all particles

* re-enabled shock capturing

* Fixed the bug for simulating multiple particles in 3D.

* Compute entropy residual based on flat bottom (b(x)=0)

* Add more than one gauge to test gauges with SWEs

* Add gauges and correct location of dam in Malpasset test

* Updated the mesh adaptivity for solid level set.
This needs to be modified for moving objects, since there is a lag between adapted mesh and the zero level set

* added hard-coded signed distance function

* corrected sdf for cavity test

* added compressible (non-conservative) form of momentum

To run as it has been in prior releases
COMPRESSIBLE_FORM=0.0
MOMENTUM_SGE=1.0 (turns off all subgrid error in momentum)
VELOCITY_SGE=1.0 (turns off velocity subgrid error in momentum)
PRESSURE_SGE=1.0 (turns off pressure subgrid error in momentum)

* fixed non-conservative time derivative and weak BC's in nc form

* re-enable density scalings

* switched to HamiltonianJacobian term

* cleaned up non-conservative form

* turn off density scaling in rho-scaled mass and advection

* switch to scalar diffusion in PCD laplace operator

* added mass lumping for pcd mass operators

* Adds a linearSmootherOptions tuple.
     - In our work, we've found that preconditioner settings can
       affect performance.  To make it easy to switch between these
       settings I've added a tuple that allows users to specify
       different preconditioner settings in the numericals and
       physics files.

* Adds a numerical viscosity option for the two-phase PCD operator.

* Changes the COMPRESSIBLE tag to NONCONSERVATIVE.

* Setup incompressible form for 3D case.

* Adds a lumped solver option for PCD mass matrices.

* Gauge compatibility fix with adaptivity (#592)

* FIX: ignore boundary flux contributions at interpart boundaries for element partitioning. Added a warning statement in NumericalSolution to describe limitation.

* MAINT: Removed some std::cout statements from grading algorithm

* MAINT: warning string should apply for any type of partitioning

* DOC/TST: Moved warning to RANS2P to fix Stokes Test that depends on log comparisons

* Use FE for malpasset test

* Cleans up merge with master branch.
       - Removes some leftover merge conflicts.
       - Corrects failing tests after merge.
       - Modifies operator constructor.

* Adds null-space documentation to Sp operator.
     - Adds a constant null space flag to Sp operator
     - Adds more documentation to Sp operator
     - Changes some print statements to logEvent
     - Deletes some code duplication.

* Adds boundary null space flag to OneLevelTransport class.
     - Adds a boundaryCreatesNullSpace attribute to the physics file
     - Adds a bdyNullSpace attribute to OneLevelTransport
     - Fixes hack so global nullspace is now set based on model specs

* Small documentation and code clean up.

* Update asserts in parallel setup.

* Adds phase_function option to RANS2P coefficients class.
     - Allows the user to specify a signed distance and
       vof function for the two-phase NS RANS2P coefficients.
     - Adds and exception handle for two-phase PCD preconditioner
       options.

* cleaned up RANS2P

* replaced Sequential_FixedStep_Simple with Sequential_tnList

* updated Sequential_FixedStep_Simple, part 2

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* added surface area check

* fixed parallel force calc for ibm in 2D

* fixed merge

* Add function calculateRedistancingResidual within NCLS model

* Add calculateRhsSmoothing within NCLS

* Add function calculateResidual_edge_based_EV within NCLS

* Add RKEV to NCLS.py

* Add SSP33 into TimeIntegration.py

* Add PeriodicBoundaryConditions argument into numerical flux: Advection_DiagonalUpwind_IIPG_exterior

* Add 1D test to NCLS model

* Add calculateResidual_entropy_viscosity and calculateJacobian_entropy_viscosity functions to RANS3PF models in 2 and 3D

* Compute CFL not within functions from subgrid errors

* Add convergence test on projection scheme

* Add cMax and cE (for entropy viscosity) parameters to RANS3PF.

* Add option to switch between calculateResidual and calculateResidual_entropy_viscosity based on use_entropy_viscosity in the _n.py model file

* Hard code the option to stop considering pressure gradients. This is for debugging and to study convergence of momentum equations.

* Add changes for entropy viscosity stabilization from 3D to 2D RANS3PF

* Select appropiate Jacobian depending on the type of stabilization (SUPG vs EV)

* Compute forces at quad points (during preStep) if the _p.py file has dictionary forceTerms

* Pass force terms at quad points to RANS3PF model

* Some changes to test for convergence on Proj Scheme

* Add KILL_PRESSURE_TERM to RANS3PF models. This is for debugging and to check convergence of momentum eqns

* Allow Pres.py model to exist without pressure increment model. This is useful to test convergence of the momentum equation

* Pass force terms to evaluate coefficients. Note: this is relevant just for the residual in the interior of the domain

* compute abs(det(J)) inside RANS3PF.py

* debugging prob with self.q[(m,0)]

* fix bug when setting self.q[(m,0)]

* add dV_u to RANS3PF.py model

* Pass q_grad_u, ..., ebqe_grad_u, ... to calculateResidual to save grads for computation of H1 error

* pass grad(u) at quad points in the interior of the elements and the boundaries to calculateResidual

* Add convergence test on NS momentum equations

* set pressure change to zero in postStep if pressureIncrementModel is None

* Let dV_u be the same (by reference) as dV

* Add and pass velocityStar at quad points. This is to fix order of accuracy (from 1st to 2nd) on RANS3PF

* Add u_dof_old, ..., dt and quantDOFs vectors to RANS3PF model. This is to comptue entropy residual

* Correct entropy residual

* Archive quantDOFs

* Compute smoothness indicator per cell for every component

* change test on pure momentum eqns for proj scheme to make it more conveniet for changing viscosity

* Testing an artificial viscosity for NS

* Add files for convergence test on proj scheme

* add density and viscosity as functions at quad points. To test convergence

* change from passing kinematic viscosity to dynamic viscosity

* add structures for density and dynamic viscosity at quad point given by user function

* change formulation to not divide by rho and modify weak entropy residual

* Forgot to add this file

* Add computation of L2 error on pressure if p is in the batch and if the analytical function is given

* Add femSpace to constructor of writeFunctionXdmf to make it work with P2 spaces

* Fix pressure update considering variable time steps and zero out q_massFlux if useRotationalForm=False

* Pass divU to PresInc.h, allow (via a flag) the rhs to not be integrated by parts and modify the rhs via a compatibility condition

* Fix Null Space of PresInc model, add flags for int by parts, kill pressure and correct the velocity

* Pass to PresInc flag for integrating by parts and divergence at quad points

* changes to RANS3PF: change computation of entropy residual, compute div(U) at quad points and add some flags

* change some parameters and force terms to convergence test on pure momentum equations for RANS3PF

* add a 2nd manufactures solution, parameters, flags and others to the conv test for the proj scheme

* add EV to 3D RANS3PF

* fix bug in SUPG stab

* scale entropy residual by rho to make it have units of dynamic viscosity

* Add self.order to C0_AffineLinear and C0_AffineQuadratic on simplexes

* scale hK by 1./order_of_polynomial

* change entropy residual to average instead of max

* add assert about integration by parts of div(U) in PresInc

* turn off modulation on EV coefficient

* turn off modulation also in 3D code

* Change test for convergence

* checkout NCLS model from master

* Fix ratio of time steps to consider first order time integration

* re-indented RANS2P

* untabified

* untabified RANS2P

* added boundaryFlags > 0 check to Jacobian flux terms too

* re-indented RANS3PF

* re-indented RANS3PF

* updated RANS3P with bdyNullSpace arg

* updated coding guidelines

* switched to sudo=false; removed apt packages

* Updates Chebyshev semi-iteration to inherit from LinearSolver class.
	- Removes IterativeSolver class
	- Documentation edits
	- Moves class from LinearAlgebra module to LinearSolver

* update chrono build

* fix chrono-dependent packages

* re-enabled apt-get packages since they are on the whitelist

* fixed assert(phis)

* slight update to makefile
zhang-alvin pushed a commit that referenced this pull request Oct 21, 2017
* SDF function now takes the particle index as the first argument rather than time

* Fixed extra parentheses error.

* MBD: added separated mesh motion function (translation/rotation)

* reintroduced MeshAdaptPUMI in setup.py

* Setting particle velocity.

* Adding angular velocities.

* Added angular velocity to particle acceleration. Added viscous stress term to force calcualtion.

* debugging particle forces in RANS3PF2D

* Add 1D Riemann problem

* SWEs: copy SSP33 method from mwf implementation

* SWEs: checkoyt SW2DCV.py from mquezada/second_order_SWEs

* SWEs: checkout SW2DCV.h from mquezada/second_order_SWEs

* SWEs: checkout cSW2DCV.pyx from mquezada/second_order_SWEs

* SWEs: add SSP33 class within TimeIntegration

* SWEs: Add explicit solvers for SWEs

* Cekees/mbd/chrono (#570)

* re-enabled Nitsche adjoint for pinc

* updated optimized pressure calculation for projection scheme

* enabled optimized pressure solve for rans3p

* enabled optimized pressure solve for rans3p

* fixed mass flux for rotational form of pressure calc

* worked on isotropic interface size field

* fix 2D Darcy term and isotropic adaptive scheme

* update stack with fixed zoltan build

* SWEs: Change initial conditions for 1D Riemann problem

* SWEs: update to latest version of SWEs code from branch mquezada/second_order_SWEs

* updated hashstack (chrono)

* enabling using Z value of mesh input for bathy

* works with malpasset

* removed irrlicht dependency

* added velocity error estimate

* Fixx problem with FCT

* Add problem: dam over bumps

* Add Malpasset test

* Fix issue (for reading bathymetry) when merging some changes

* Minor change in FCT step

* added unstructured test to sw_hump case

* use Context in test files and archive bathy as mesh

* added user defined size_field ("isotropicProteus" option)

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a Chebyshev semi-iteration solver.
     - Add a new class to create and apply a Chebyshev semi-iteration
     - Introduces several tests to verify resonable output
     - Adds a new function for turning dense numpy arrays
       into petsc4py matrices (really only useful for testing)

* Modifications made for parallel implementation.

* Fixed typo in setup.py.

* Creates a selfp class in Proteus.

* Removed unnecessary MPI_barriers.

* Refactors matrix construction to reduce parallel overhead.

* Adds RANS2P2D functions for building operators.

* PCD RANS2P with parallel support.

* Updates NumericalAnalytics for multiphyics problems.
	- Adds a csv file exporter.

* Updated TestTools utilities.

* Changes Chebyshev Semi-Iteration to be consistent with IFISS

* Adds a parallel info tracker for multilevel meshes.
     - Fixes a broken test.

* Latest edits for RANS2P dambreak problem

* fixed typo Dit->Dict

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* - Added the support for imposing the velocity BC for particles; particle_velocityList must be supported just like particle_sdfList.
- Added the support for simulating granular material; In this case granular_vel_Calc, and granular_sdf_Calc must be supported which calculate the velocity and sd field for any particle i.
- Bug fix in defining the surface penalty constant.
- Added the suport to export a single sd field for granular material simulations.

* Applied the fixes from
f8fdac4 [f8fdac4]
origin/rans3p_bc

* Testing Proteus integration.

* Archive bathymetry and water elevation

* added surface area check

* Debugging force calculations.

* Compute normalx and normaly vectors

* sdf debugging.

* add necessary variables in SW2DCV.py for reflecting boundary conditions

* change dam over bumps to use new reflecting BCs

* change default mesh to unstructured

* Added the surface area check and viscous forces from rans3p_bc
80601e0

* test reflecting BCs over dam break over bumps with non rectangular domain

* fixed parallel force calc for ibm in 2D

* fixed parallel force calc for ibm in 2D

* Changes to work with multiple particles.

* Add test for gauges

* fixed merge

* deep copy into dof[:] instead change dof reference to new array

* Changes to get 3D IB case working.

* Several changes to SW2DCV.h, SW2DCV.py and cSW2DCP.pyx. Mainly to change regularization and improve robustness

* ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame

* Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"

This reverts commit b6ea6dd.

* Debugging IB particle forces.

* stabilization stuff

* 3D Mesh Reconstruction (#589)

Add 3D capability for SCOREC mesh-reconstruction from Proteus mesh data structures.

* ENH: Added serial 3D mesh reconstruction capability. Littered with debug statements

* MAINT: Removed debug statements and added doc strings for some conditionals. Parallel seems to work so long as partitioning is set correctly

* FIX: prevent boundary elements from collapsing by classifying exterior edge entities as model edges

* FIX: resolve assert if multiregion domain and add logic to inherit node materials from boundary materials in 3D

* fixed typo Dit->Dict (#578)

* FIX: only have owning edges send model info

* Revert "Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"" (#588)

This turns on the hard-coded `size_scale` and `size_frame` fields for the `anisotropicProteus` option.
This reverts commit 31f5dfa.

* Added python script that creates symbolic links needed for proteus build

* Change the place where the low order dissipative matrix is computed

* Add function in c++ to compute the LO dissipative matrix, the edge_based_cfl and others (smoothness indicator and EV residual)

* Compute desired dt to fulfill positivity constraints from within choose_dt in RKEV

* Remove some computations on function that computes the edge_based_cfl

* Change again place where dLow is being computed

* Avoid computing dLow twice if we are in the first stage of the SSP method

* Add minor bug in SW2DCV.py

* Fixes the issue for running the ib cases in parallel, for 2D and 3D

* Archive quantDOFs (if the model has it)

* Adjust dt before calculateResidual based on 2nd order solution

* Change flags in solvers for SWEs to turn off part of the code in the 2nd call of calculateResidual

* This is a branch to test the different methods to apply no slip boundary conditions on IBs,
- The important part of this commit is applying the one-sided penalty terms only inside the IB, not outside; this is important to make sure that the boundary layer around the bodies are not modified; This finally makes sure that drag calculation is not affected by the source terms introduced at the fluid-solid interface.
- Another thing that is tested in this commit is adding dV*(1.0 - H_s)*C_vol*(u-u_s)*rho term to the force terms; this is to make sure that the momentum loss inside the IBs are taken into account as well. However, this requiers that u=us is satisfied inside the IB up to a fairly tight tolerance, otherwise large alpha and beta constants will results in a non-zero contribution in this exrpression.

* Add 2D paraboloid test

* Add 1D paraboloid test

* comment out pessure stabilization terms in RANS3PF2D

* This commit contains two different taks:
1- Fixing the issue with imposing the u=u_s at the inner nodes of the IB; most importantly the last five (except the third from last) chunk of the changes in RANS3PF2D.h are for this purpose. The pressure gradient term effect was also ignorded in the evaluateCoefficient method
2- WIP backend for the adaptive mesh refinment at the fluid-solid interface was added, but this is not working at this point

* Applying the changes form RANS3PF2D.h to RANS3PF.h

* Clang formated

* bug fix for particle simulation

* Adjoint stabilization.

* merge in orgin/master

* version of rans2p2d with no stabilization in momentum equation

* Bug fix in the RANS3PF for the cases where multiple particles are simulated.
The penalty terms should have been applied to all particles

* re-enabled shock capturing

* Fixed the bug for simulating multiple particles in 3D.

* Compute entropy residual based on flat bottom (b(x)=0)

* Add more than one gauge to test gauges with SWEs

* Add gauges and correct location of dam in Malpasset test

* Updated the mesh adaptivity for solid level set.
This needs to be modified for moving objects, since there is a lag between adapted mesh and the zero level set

* added hard-coded signed distance function

* corrected sdf for cavity test

* added compressible (non-conservative) form of momentum

To run as it has been in prior releases
COMPRESSIBLE_FORM=0.0
MOMENTUM_SGE=1.0 (turns off all subgrid error in momentum)
VELOCITY_SGE=1.0 (turns off velocity subgrid error in momentum)
PRESSURE_SGE=1.0 (turns off pressure subgrid error in momentum)

* fixed non-conservative time derivative and weak BC's in nc form

* re-enable density scalings

* switched to HamiltonianJacobian term

* cleaned up non-conservative form

* turn off density scaling in rho-scaled mass and advection

* switch to scalar diffusion in PCD laplace operator

* added mass lumping for pcd mass operators

* Adds a linearSmootherOptions tuple.
     - In our work, we've found that preconditioner settings can
       affect performance.  To make it easy to switch between these
       settings I've added a tuple that allows users to specify
       different preconditioner settings in the numericals and
       physics files.

* Adds a numerical viscosity option for the two-phase PCD operator.

* Changes the COMPRESSIBLE tag to NONCONSERVATIVE.

* Setup incompressible form for 3D case.

* Adds a lumped solver option for PCD mass matrices.

* Gauge compatibility fix with adaptivity (#592)

* FIX: ignore boundary flux contributions at interpart boundaries for element partitioning. Added a warning statement in NumericalSolution to describe limitation.

* MAINT: Removed some std::cout statements from grading algorithm

* MAINT: warning string should apply for any type of partitioning

* DOC/TST: Moved warning to RANS2P to fix Stokes Test that depends on log comparisons

* Use FE for malpasset test

* Cleans up merge with master branch.
       - Removes some leftover merge conflicts.
       - Corrects failing tests after merge.
       - Modifies operator constructor.

* Adds null-space documentation to Sp operator.
     - Adds a constant null space flag to Sp operator
     - Adds more documentation to Sp operator
     - Changes some print statements to logEvent
     - Deletes some code duplication.

* Adds boundary null space flag to OneLevelTransport class.
     - Adds a boundaryCreatesNullSpace attribute to the physics file
     - Adds a bdyNullSpace attribute to OneLevelTransport
     - Fixes hack so global nullspace is now set based on model specs

* Small documentation and code clean up.

* Update asserts in parallel setup.

* Adds phase_function option to RANS2P coefficients class.
     - Allows the user to specify a signed distance and
       vof function for the two-phase NS RANS2P coefficients.
     - Adds and exception handle for two-phase PCD preconditioner
       options.

* cleaned up RANS2P

* replaced Sequential_FixedStep_Simple with Sequential_tnList

* updated Sequential_FixedStep_Simple, part 2

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* added surface area check

* fixed parallel force calc for ibm in 2D

* fixed merge

* Add function calculateRedistancingResidual within NCLS model

* Add calculateRhsSmoothing within NCLS

* Add function calculateResidual_edge_based_EV within NCLS

* Add RKEV to NCLS.py

* Add SSP33 into TimeIntegration.py

* Add PeriodicBoundaryConditions argument into numerical flux: Advection_DiagonalUpwind_IIPG_exterior

* Add 1D test to NCLS model

* Add calculateResidual_entropy_viscosity and calculateJacobian_entropy_viscosity functions to RANS3PF models in 2 and 3D

* Compute CFL not within functions from subgrid errors

* Add convergence test on projection scheme

* Add cMax and cE (for entropy viscosity) parameters to RANS3PF.

* Add option to switch between calculateResidual and calculateResidual_entropy_viscosity based on use_entropy_viscosity in the _n.py model file

* Hard code the option to stop considering pressure gradients. This is for debugging and to study convergence of momentum equations.

* Add changes for entropy viscosity stabilization from 3D to 2D RANS3PF

* Select appropiate Jacobian depending on the type of stabilization (SUPG vs EV)

* Compute forces at quad points (during preStep) if the _p.py file has dictionary forceTerms

* Pass force terms at quad points to RANS3PF model

* Some changes to test for convergence on Proj Scheme

* Add KILL_PRESSURE_TERM to RANS3PF models. This is for debugging and to check convergence of momentum eqns

* Allow Pres.py model to exist without pressure increment model. This is useful to test convergence of the momentum equation

* Pass force terms to evaluate coefficients. Note: this is relevant just for the residual in the interior of the domain

* compute abs(det(J)) inside RANS3PF.py

* debugging prob with self.q[(m,0)]

* fix bug when setting self.q[(m,0)]

* add dV_u to RANS3PF.py model

* Pass q_grad_u, ..., ebqe_grad_u, ... to calculateResidual to save grads for computation of H1 error

* pass grad(u) at quad points in the interior of the elements and the boundaries to calculateResidual

* Add convergence test on NS momentum equations

* set pressure change to zero in postStep if pressureIncrementModel is None

* Let dV_u be the same (by reference) as dV

* Add and pass velocityStar at quad points. This is to fix order of accuracy (from 1st to 2nd) on RANS3PF

* Add u_dof_old, ..., dt and quantDOFs vectors to RANS3PF model. This is to comptue entropy residual

* Correct entropy residual

* Archive quantDOFs

* Compute smoothness indicator per cell for every component

* change test on pure momentum eqns for proj scheme to make it more conveniet for changing viscosity

* Testing an artificial viscosity for NS

* Add files for convergence test on proj scheme

* add density and viscosity as functions at quad points. To test convergence

* change from passing kinematic viscosity to dynamic viscosity

* add structures for density and dynamic viscosity at quad point given by user function

* change formulation to not divide by rho and modify weak entropy residual

* Forgot to add this file

* Add computation of L2 error on pressure if p is in the batch and if the analytical function is given

* Add femSpace to constructor of writeFunctionXdmf to make it work with P2 spaces

* Fix pressure update considering variable time steps and zero out q_massFlux if useRotationalForm=False

* Pass divU to PresInc.h, allow (via a flag) the rhs to not be integrated by parts and modify the rhs via a compatibility condition

* Fix Null Space of PresInc model, add flags for int by parts, kill pressure and correct the velocity

* Pass to PresInc flag for integrating by parts and divergence at quad points

* changes to RANS3PF: change computation of entropy residual, compute div(U) at quad points and add some flags

* change some parameters and force terms to convergence test on pure momentum equations for RANS3PF

* add a 2nd manufactures solution, parameters, flags and others to the conv test for the proj scheme

* add EV to 3D RANS3PF

* fix bug in SUPG stab

* scale entropy residual by rho to make it have units of dynamic viscosity

* Add self.order to C0_AffineLinear and C0_AffineQuadratic on simplexes

* scale hK by 1./order_of_polynomial

* change entropy residual to average instead of max

* add assert about integration by parts of div(U) in PresInc

* turn off modulation on EV coefficient

* turn off modulation also in 3D code

* Change test for convergence

* checkout NCLS model from master

* Fix ratio of time steps to consider first order time integration

* re-indented RANS2P

* untabified

* untabified RANS2P

* added boundaryFlags > 0 check to Jacobian flux terms too

* re-indented RANS3PF

* re-indented RANS3PF

* updated RANS3P with bdyNullSpace arg

* updated coding guidelines

* switched to sudo=false; removed apt packages

* Updates Chebyshev semi-iteration to inherit from LinearSolver class.
	- Removes IterativeSolver class
	- Documentation edits
	- Moves class from LinearAlgebra module to LinearSolver

* update chrono build

* fix chrono-dependent packages

* re-enabled apt-get packages since they are on the whitelist

* fixed assert(phis)

* slight update to makefile
zhang-alvin pushed a commit that referenced this pull request Oct 21, 2017
* Latest edits for RANS2P dambreak problem

* fixed typo Dit->Dict

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* - Added the support for imposing the velocity BC for particles; particle_velocityList must be supported just like particle_sdfList.
- Added the support for simulating granular material; In this case granular_vel_Calc, and granular_sdf_Calc must be supported which calculate the velocity and sd field for any particle i.
- Bug fix in defining the surface penalty constant.
- Added the suport to export a single sd field for granular material simulations.

* Applied the fixes from
f8fdac4 [f8fdac4]
origin/rans3p_bc

* Testing Proteus integration.

* Archive bathymetry and water elevation

* added surface area check

* Debugging force calculations.

* Compute normalx and normaly vectors

* sdf debugging.

* add necessary variables in SW2DCV.py for reflecting boundary conditions

* change dam over bumps to use new reflecting BCs

* change default mesh to unstructured

* Added the surface area check and viscous forces from rans3p_bc
80601e0

* test reflecting BCs over dam break over bumps with non rectangular domain

* fixed parallel force calc for ibm in 2D

* fixed parallel force calc for ibm in 2D

* Changes to work with multiple particles.

* Add test for gauges

* fixed merge

* deep copy into dof[:] instead change dof reference to new array

* Changes to get 3D IB case working.

* Several changes to SW2DCV.h, SW2DCV.py and cSW2DCP.pyx. Mainly to change regularization and improve robustness

* ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame

* Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"

This reverts commit b6ea6dd.

* Debugging IB particle forces.

* stabilization stuff

* 3D Mesh Reconstruction (#589)

Add 3D capability for SCOREC mesh-reconstruction from Proteus mesh data structures.

* ENH: Added serial 3D mesh reconstruction capability. Littered with debug statements

* MAINT: Removed debug statements and added doc strings for some conditionals. Parallel seems to work so long as partitioning is set correctly

* FIX: prevent boundary elements from collapsing by classifying exterior edge entities as model edges

* FIX: resolve assert if multiregion domain and add logic to inherit node materials from boundary materials in 3D

* fixed typo Dit->Dict (#578)

* FIX: only have owning edges send model info

* Revert "Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"" (#588)

This turns on the hard-coded `size_scale` and `size_frame` fields for the `anisotropicProteus` option.
This reverts commit 31f5dfa.

* Added python script that creates symbolic links needed for proteus build

* Change the place where the low order dissipative matrix is computed

* Add function in c++ to compute the LO dissipative matrix, the edge_based_cfl and others (smoothness indicator and EV residual)

* Compute desired dt to fulfill positivity constraints from within choose_dt in RKEV

* Remove some computations on function that computes the edge_based_cfl

* Change again place where dLow is being computed

* Avoid computing dLow twice if we are in the first stage of the SSP method

* Add minor bug in SW2DCV.py

* Fixes the issue for running the ib cases in parallel, for 2D and 3D

* Archive quantDOFs (if the model has it)

* Adjust dt before calculateResidual based on 2nd order solution

* Change flags in solvers for SWEs to turn off part of the code in the 2nd call of calculateResidual

* This is a branch to test the different methods to apply no slip boundary conditions on IBs,
- The important part of this commit is applying the one-sided penalty terms only inside the IB, not outside; this is important to make sure that the boundary layer around the bodies are not modified; This finally makes sure that drag calculation is not affected by the source terms introduced at the fluid-solid interface.
- Another thing that is tested in this commit is adding dV*(1.0 - H_s)*C_vol*(u-u_s)*rho term to the force terms; this is to make sure that the momentum loss inside the IBs are taken into account as well. However, this requiers that u=us is satisfied inside the IB up to a fairly tight tolerance, otherwise large alpha and beta constants will results in a non-zero contribution in this exrpression.

* Add 2D paraboloid test

* Add 1D paraboloid test

* comment out pessure stabilization terms in RANS3PF2D

* This commit contains two different taks:
1- Fixing the issue with imposing the u=u_s at the inner nodes of the IB; most importantly the last five (except the third from last) chunk of the changes in RANS3PF2D.h are for this purpose. The pressure gradient term effect was also ignorded in the evaluateCoefficient method
2- WIP backend for the adaptive mesh refinment at the fluid-solid interface was added, but this is not working at this point

* Applying the changes form RANS3PF2D.h to RANS3PF.h

* Clang formated

* bug fix for particle simulation

* Adjoint stabilization.

* merge in orgin/master

* version of rans2p2d with no stabilization in momentum equation

* Bug fix in the RANS3PF for the cases where multiple particles are simulated.
The penalty terms should have been applied to all particles

* re-enabled shock capturing

* Fixed the bug for simulating multiple particles in 3D.

* Compute entropy residual based on flat bottom (b(x)=0)

* Add more than one gauge to test gauges with SWEs

* Add gauges and correct location of dam in Malpasset test

* Updated the mesh adaptivity for solid level set.
This needs to be modified for moving objects, since there is a lag between adapted mesh and the zero level set

* added hard-coded signed distance function

* corrected sdf for cavity test

* added compressible (non-conservative) form of momentum

To run as it has been in prior releases
COMPRESSIBLE_FORM=0.0
MOMENTUM_SGE=1.0 (turns off all subgrid error in momentum)
VELOCITY_SGE=1.0 (turns off velocity subgrid error in momentum)
PRESSURE_SGE=1.0 (turns off pressure subgrid error in momentum)

* fixed non-conservative time derivative and weak BC's in nc form

* re-enable density scalings

* switched to HamiltonianJacobian term

* cleaned up non-conservative form

* turn off density scaling in rho-scaled mass and advection

* switch to scalar diffusion in PCD laplace operator

* added mass lumping for pcd mass operators

* Adds a linearSmootherOptions tuple.
     - In our work, we've found that preconditioner settings can
       affect performance.  To make it easy to switch between these
       settings I've added a tuple that allows users to specify
       different preconditioner settings in the numericals and
       physics files.

* Adds a numerical viscosity option for the two-phase PCD operator.

* Changes the COMPRESSIBLE tag to NONCONSERVATIVE.

* Setup incompressible form for 3D case.

* Adds a lumped solver option for PCD mass matrices.

* Gauge compatibility fix with adaptivity (#592)

* FIX: ignore boundary flux contributions at interpart boundaries for element partitioning. Added a warning statement in NumericalSolution to describe limitation.

* MAINT: Removed some std::cout statements from grading algorithm

* MAINT: warning string should apply for any type of partitioning

* DOC/TST: Moved warning to RANS2P to fix Stokes Test that depends on log comparisons

* Use FE for malpasset test

* Cleans up merge with master branch.
       - Removes some leftover merge conflicts.
       - Corrects failing tests after merge.
       - Modifies operator constructor.

* Adds null-space documentation to Sp operator.
     - Adds a constant null space flag to Sp operator
     - Adds more documentation to Sp operator
     - Changes some print statements to logEvent
     - Deletes some code duplication.

* Adds boundary null space flag to OneLevelTransport class.
     - Adds a boundaryCreatesNullSpace attribute to the physics file
     - Adds a bdyNullSpace attribute to OneLevelTransport
     - Fixes hack so global nullspace is now set based on model specs

* Small documentation and code clean up.

* Update asserts in parallel setup.

* Adds phase_function option to RANS2P coefficients class.
     - Allows the user to specify a signed distance and
       vof function for the two-phase NS RANS2P coefficients.
     - Adds and exception handle for two-phase PCD preconditioner
       options.

* cleaned up RANS2P

* replaced Sequential_FixedStep_Simple with Sequential_tnList

* updated Sequential_FixedStep_Simple, part 2

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* added surface area check

* fixed parallel force calc for ibm in 2D

* fixed merge

* Add function calculateRedistancingResidual within NCLS model

* Add calculateRhsSmoothing within NCLS

* Add function calculateResidual_edge_based_EV within NCLS

* Add RKEV to NCLS.py

* Add SSP33 into TimeIntegration.py

* Add PeriodicBoundaryConditions argument into numerical flux: Advection_DiagonalUpwind_IIPG_exterior

* Add 1D test to NCLS model

* Add calculateResidual_entropy_viscosity and calculateJacobian_entropy_viscosity functions to RANS3PF models in 2 and 3D

* Compute CFL not within functions from subgrid errors

* Add convergence test on projection scheme

* Add cMax and cE (for entropy viscosity) parameters to RANS3PF.

* Add option to switch between calculateResidual and calculateResidual_entropy_viscosity based on use_entropy_viscosity in the _n.py model file

* Hard code the option to stop considering pressure gradients. This is for debugging and to study convergence of momentum equations.

* Add changes for entropy viscosity stabilization from 3D to 2D RANS3PF

* Select appropiate Jacobian depending on the type of stabilization (SUPG vs EV)

* Compute forces at quad points (during preStep) if the _p.py file has dictionary forceTerms

* Pass force terms at quad points to RANS3PF model

* Some changes to test for convergence on Proj Scheme

* Add KILL_PRESSURE_TERM to RANS3PF models. This is for debugging and to check convergence of momentum eqns

* Allow Pres.py model to exist without pressure increment model. This is useful to test convergence of the momentum equation

* Pass force terms to evaluate coefficients. Note: this is relevant just for the residual in the interior of the domain

* compute abs(det(J)) inside RANS3PF.py

* debugging prob with self.q[(m,0)]

* fix bug when setting self.q[(m,0)]

* add dV_u to RANS3PF.py model

* Pass q_grad_u, ..., ebqe_grad_u, ... to calculateResidual to save grads for computation of H1 error

* pass grad(u) at quad points in the interior of the elements and the boundaries to calculateResidual

* Add convergence test on NS momentum equations

* set pressure change to zero in postStep if pressureIncrementModel is None

* Let dV_u be the same (by reference) as dV

* Add and pass velocityStar at quad points. This is to fix order of accuracy (from 1st to 2nd) on RANS3PF

* Add u_dof_old, ..., dt and quantDOFs vectors to RANS3PF model. This is to comptue entropy residual

* Correct entropy residual

* Archive quantDOFs

* Compute smoothness indicator per cell for every component

* change test on pure momentum eqns for proj scheme to make it more conveniet for changing viscosity

* Testing an artificial viscosity for NS

* Add files for convergence test on proj scheme

* add density and viscosity as functions at quad points. To test convergence

* change from passing kinematic viscosity to dynamic viscosity

* add structures for density and dynamic viscosity at quad point given by user function

* change formulation to not divide by rho and modify weak entropy residual

* Forgot to add this file

* Add computation of L2 error on pressure if p is in the batch and if the analytical function is given

* Add femSpace to constructor of writeFunctionXdmf to make it work with P2 spaces

* Fix pressure update considering variable time steps and zero out q_massFlux if useRotationalForm=False

* Pass divU to PresInc.h, allow (via a flag) the rhs to not be integrated by parts and modify the rhs via a compatibility condition

* Fix Null Space of PresInc model, add flags for int by parts, kill pressure and correct the velocity

* Pass to PresInc flag for integrating by parts and divergence at quad points

* changes to RANS3PF: change computation of entropy residual, compute div(U) at quad points and add some flags

* change some parameters and force terms to convergence test on pure momentum equations for RANS3PF

* add a 2nd manufactures solution, parameters, flags and others to the conv test for the proj scheme

* add EV to 3D RANS3PF

* fix bug in SUPG stab

* scale entropy residual by rho to make it have units of dynamic viscosity

* Add self.order to C0_AffineLinear and C0_AffineQuadratic on simplexes

* scale hK by 1./order_of_polynomial

* change entropy residual to average instead of max

* add assert about integration by parts of div(U) in PresInc

* turn off modulation on EV coefficient

* turn off modulation also in 3D code

* Change test for convergence

* checkout NCLS model from master

* Fix ratio of time steps to consider first order time integration

* add explicit nonlinear solvers for VOF NCLS and L2Projection all with EV

* add 1D test for NCLS with EV

* Add SSP class to TimeIntegration.py

* change folder name of NCLS 1D test

* rm old folder for 1D test on NCLS

* re-indented RANS2P

* untabified

* untabified RANS2P

* added boundaryFlags > 0 check to Jacobian flux terms too

* re-indented RANS3PF

* re-indented RANS3PF

* updated RANS3P with bdyNullSpace arg

* updated coding guidelines

* switched to sudo=false; removed apt packages

* Updates Chebyshev semi-iteration to inherit from LinearSolver class.
	- Removes IterativeSolver class
	- Documentation edits
	- Moves class from LinearAlgebra module to LinearSolver

* update chrono build

* fix chrono-dependent packages

* re-enabled apt-get packages since they are on the whitelist

* fixed more bdyNullSpace flags and a IBM issue affecting non-IBM

* change rho and mu to be changing in space and time

* fixed RSN2P2D usage of elementBoundaryMaterialTypes

* Add getPeriodicBoundaryConditions argument to Advection_DiagonalUpwind_IIPG_exterior

* Fix bug in explicit nonlinear solvers

* use uStar in the Jacobian of RANS3PF

* remove ENTROPY_VISCOSITY and EDGE_VISCOSITY flags from NCLS model

* Add function updateVelocityFieldAsFunction to use a velocity given by user (if any)

* remove preStep from MyCoefficients on oneD_advection test for NCLS

* change some parameters on oneD_advection test for NCLS

* stop computing lumped mass matrix from within the c++ code

* Add Cz to NCLS. This is the z-component of the matrix C=\int(\nabla(w_j)*w_i*dx)

* Fix linearity preservation property on low order dissipative matrix for NCLS

* Fix how to output phi_s and quantDOFs in NCLS model

* Allow two new stabilizations for NCLS: EV and one based on the smoothness of the soln

* pass dt as argument, assert that ExplicitLumpedMassMatrix solver is used when needed and make a other minor changes

* Allow to choose to different entropy functions for NCLS

* Clean up SSP methods and other parts and add SSP22 to NCLS

* set isDOFBoundary=1 when periodic BCs are set

* add assert to use RKEV with EV stabilization in NCLS

* change the definition of ENTROPY_TYPE

* Add some flags for Coupez method in NCLS

* Fix some flags on ExplicitConsistentMassMatrixWithRedistancing for NCLS

* Add 1D pure advection test

* Add 1D pure advection test for NCLS

* Add 1D test for redistancing in NCLS

* add 2D test for redistancing within NCLS

* untabify cNCLS.pyx and NCLS.py

* fix back == None and != None

* untrack compiled file

* checkout VOF model from mquezada/cleaned_NCLS_and_VOF

* remove some unused flags within VOF model

* Add mesh velocity to EV stabilization in NCLS and do some general cleaning

* Add flag for FCT to ExplicitConsistentMassMatrixForVOF

* General clean up of VOF model and include mesh velocity and porosity into EV stabilization

* Allow use of lumped mass matrix with FCT

* Remove old tests on NCLS

* Add tests on NCLS via Context

* Add test for vof using context

* Modify default parameter on ncls test

* Make automated tests for VOF

* delete old test on VOF

* change edge_based_cfl for NCLS

* Add automated tests for NCLS with EV

* Remove old (non automated) test on NCLS with EV

* Add a default dummy value to epsCoupez
zhang-alvin pushed a commit that referenced this pull request Oct 22, 2017
* Reduced calls for fastcosh

* Fixing conflicts

* Fixing cponflicts

* Update jupyter (#482)

* updating jupyter version and stack dependencies

this enables many new ipython widgets and jupyter notebooks features

* force fetch on Makefile:default_stack repos

* added cycler package

* added backports-shutil dep

* added more ipython deps to stack

* update stack commit again

* fixing shapely in stack

* removed scorec from default stack

* added python-lzma

* fixing default_stack target

* updated Dockerfile to work with current jupyterhub

* updated hashdist and hashstack commits

* close hdf5 files after each test runs

* updated test output, fixed gauge MPI bug,  removed some warnings

* tried to fix int conversion problem in WaveTools.py

* added some system dependencies for travis builds

* fixed  spacing in .travis.yaml--got to get a yml emacs mode

* trying pip install of pyliblzma so hit can do .xz files

* turning down hit verbosity

* updated hashdist to turn off progress bar that fills up logs

* updated Dockerfile to allow multiple modes of running the container

supports terminal, ipython, local notebook, and jupyterhub

* updated Dockerfile with more OS packages and hashdist_default

* updated zmq in stack and how pyzmq is build in Dockerfile

* cleaned up Dockerfile and tried to fix pip3 pyzmq build

* more stack and hashdist fixes

* added new test data

* fixed nbextensions in jupyterhub config

* Close .h5 file in import module.

* Delete renamed output files.

* updated to petsc 3.7.5

* update version numbers and Dockerfile

* added PROTEUS_RELEASE environment variable in .travis.yml

* added better version extraction

* Update notebooks (#484)

* fixed default ipyparallel setup and sdInfo regressions

* updated stack (to update mpich and sphinx)

* updating stack to add imagesize

* removed errors from sphing doc generation

* Refactor the tutorial directory.

* simplified handling of hit remotes

* Added a Navier-Stokes driven cavity example.

* added Makefile targets for setting up remote src and bld caches

* fix Makefile for when lsb_release not present

* updated stack to fix pycgal fail

* fix mprans.PresInc numerical flux and Jacobian

* updated stack to fix pycgal build failure

* Added streamlines to NSE solution plots.

* updated stack and removed adjoint from PresInc

* updated hashdist that supports pushing xz archives

* updated stack and cleaned up CI support

* removed reference  to update_notebooks branch in Dockerfile

* Fixing conf files for hydra. Fixing waveTools tests, all running now with make test

* Stack fixes (#488)

*  updated hashdist to fix namespace installs on ubuntu 16.10

* removed cgal python bindings from stack

* Cleaned up poisson_2d test output.

* chrono's python binding crash build on debian (internal cc1plus err) (#490)

* modify stack to remove chrono python binding build that was crashing

* make petsc the default route to superlu

* add PROTEUS_HDF5... in config.py, setup.py

* Reorganized test_wavetools.
	    - Put test module and supporting data in a seperate directory.
	    - Delete generated output files.

* Small edits.

* Changed remove_file locations

* 2D paddle and pipeline added

* CircularBody merged in RigidBody. RungeKutta added in RigidBody BaseClass

* Added Euler drift for velocity

* Gmsh domain: added he_max option; polyfile->geofile

* Including gAbs for udrift calculation

* Fixed glitches in WaveTools.DirectionalWaves and WaveTools.MultiSpectraRandomWaves. Introduced tests for all functions in WT. Implemented Udrif in tests. Fixed glitches with fenton tests

* Adding documentation

* Domain: removed MeshOptions class

* Restructured Proteus notebooks directory. (#491)

* Restructured Proteus notebooks directory.

* Added links to notebooks from main notebooks page.
      - Added a small description to the flume application.

* added index, fixed parallel examples, and updated wavetank desc.

* Added switch for fast appoximation

* Created test for fast = False

* example of docstring refactor

* Fixed docstrings

* Fixed hype array and removed depth limiter when fast=False. cleaned up tests

* BC: vel. smoothing for waves from VOF>0.5

* BC: remove double call to phi calculation

* MeshOptions moved to MeshTools

* added mesh options; SpatialTools tests passed

* Frictional module: improving friction calculation

* BC/SpatialTools update: fixes and rigid body BC

 - added Chrono (rigid body) BC
 - fixed Tank2D facets
 - removed out of bounds access in relaxation zone in 2D
 - functions for relax zones accessible through python for debugging

* BC: relaxation zone bug fix (ignored last zone)

* BC: removed print statement

* WaveTools: fast switch bug fix

* removed call to Tetgen for 2D domain

* updated moveMesh BC test

* Fixed memory leaking bug

* Using 2D assumption

* Removed @cekees comments, tests now work

* Removed print statement

* moved gmsh2triangle to MeshTools; added docstring

* added simple test for gmsh; docstrings for MeshOptions

* Solitary wave theory, added and tested

* SpatialTools: Sphere added; facets assembling fixed

* FemTools: getValue() updated

* changed base of Sphere in mprans version

* Friction based on reactions

* BC: reset conditions for sliding mesh nodes

* Boundaries for currents tested. Turbulent boundaries added.

* Vertical calculation first in friction module

* added semi-implicit form of Forcheimer term

* fix for parallel bug reported in PR #432

* scorec/linux: PUMI and MeshAdapt (#450)

* fixed data file install paths

* reset BoundaryCondition parent class

* Simple support for SpatialTools integration with structured meshes.

Nothing fancy.

* Gauges are now supported by spatial tools

Users can now attach gauges to any RANS shape by the attachPointGauges() (or similar for line and line integral gauges) method, which uses the same inputs as a gauge call plus a label for which problem the gauges should be associated with (e.g. ls, twp, redist).  These are attached to the Domain and can be called from _n.py files in a simple manner.  Errors are raised for misnamed problems (i.e. if someone puts twp_navier_stokes despite us using the shortened name twp in this context).  _n.py files may call for their auxiliary variables whether or not they have any without bad behavior (allow people to turn gauges or other factors on and off without worrying about editing _n.py files).

* Tank2D Refactored

Tank2D is now more modular and easier to extend.  Some terminology has changed to make method names more intuitive.

* Tank2DWithObstacles

This class allows for a simple way to build most air-water-vv style problems where a mostly rectangular tank has obstacles (such as a weir, a sloped bottom, etc.).  The implementation is a bit messy and a more in depth gmsh interface should handle this eventually.  It extends off of the refactored Tank2D.

* set node flags off of face flags if not in .node file

This only works with parun's `-F` option right now.

* updated proteus scripts install and .travis.yaml

* update to meet @tridelat's points

Dimension is no longer given a default argument in initialization (this might require a fix to the test suite, which I'll put in a separate commit if it comes up).  Regions are no assigned on the middle of the x- wall of the tank, rather than the center of the tank (as Tristan brought up that the center is often occupied by other shapes).

* fixed install target for gmsh2tetgen

* MOD: modified adapt inputs to get optimal load balancing

* MOD: modified adapt inputs to get optimal load balancing

* MOD: Separated anisotropic and isotropic adapt types to avoid having to compute size frames for iso

* MOD: Separated anisotropic and isotropic adapt types to avoid having to compute size frames for iso

* EDIT: Cleaned up some commented out code

* EDIT: Cleaned up some commented out code

* _attachAuxiliaryVariables is more informative now.

It will give logEvents for repeated or bad inputs.

* MOD: Changed the adapt criterion back to total error

* MOD: Changed the adapt criterion back to total error

* BUG: Added synchronization of Size Field across boundaries, which avoids some if not all of the bad topology errors observed recently

* BUG: Added synchronization of Size Field across boundaries, which avoids some if not all of the bad topology errors observed recently

* BUG: Added synchronization for isotropic adapt as well

* BUG: Added synchronization for isotropic adapt as well

* EDIT: Cleaned up some statements in SizeField

* EDIT: Cleaned up some statements in SizeField

* MOD/BUG: Corrected bugs due to modifications

* MOD/BUG: Corrected bugs due to modifications

* EDIT: formatted some statements and consolidated some logging actions

* EDIT: formatted some statements and consolidated some logging actions

* TESTS: Updated test names and added tests for isotropic adapt function option, parallel error estimator and adapt

* TESTS: Updated test names and added tests for isotropic adapt function option, parallel error estimator and adapt

* TESTS: Began consolidation of tests that share the same geometry files

* TESTS: Began consolidation of tests that share the same geometry files

* TESTS: Cleaned up isotropic adapt check

* TESTS: Cleaned up isotropic adapt check

* TESTS: Cleaned up gmsh load and adapt test

* TESTS: Cleaned up gmsh load and adapt test

* TESTS: Updated Makefile to reflect test changes

* TESTS: Updated Makefile to reflect test changes

* TESTS/BUG: Fixed bug in makefile

* TESTS/BUG: Fixed bug in makefile

* TESTS: Forgot to add parallel check changes to commits

* TESTS: Forgot to add parallel check changes to commits

* DEP: Removing old tests that aren't used

* DEP: Removing old tests that aren't used

* ENH: Added isotropic sizefield scaling to target number of elements. Also corrected the synchronization to size_iso in isotropic adapt

* ENH: Added isotropic sizefield scaling to target number of elements. Also corrected the synchronization to size_iso in isotropic adapt

* MAINT: Cleaned up some commented out statements in the testIsotropic size field function

* MAINT: Cleaned up some commented out statements in the testIsotropic size field function

* MAINT: Removed the conditionals for isotropic vs anisotropic

* MAINT: Removed the conditionals for isotropic vs anisotropic

* ENH: Make computation of domain volume a one-time operation

* ENH: Make computation of domain volume a one-time operation

* MAINT: Cleaned up more code and added some documentation strings

* MAINT: Cleaned up more code and added some documentation strings

* MAINT: Cleaned up the error residual method file.

* MAINT: Cleaned up the error residual method file.

* BLD: Add Simmetrix dependencies depending on existence of library path

* BLD: Add Simmetrix dependencies depending on existence of library path

* BLD: Added compiler macro and preprocessor conditionals for compilation with and without simmetrix

* BLD: Added compiler macro and preprocessor conditionals for compilation with and without simmetrix

* EDIT: Renamed errRate to errRho

* EDIT: Renamed errRate to errRho

* ENH: Added back relative error field for comparison, assert on domain volume, and switched back to original formulation for size field

* ENH: Added back relative error field for comparison, assert on domain volume, and switched back to original formulation for size field

* ENH: Add smoothing if using element targetting

* ENH: Add smoothing if using element targetting

* ENH: Added assertation for parallel runs to ensure all processes will adapt

* ENH: Added assertation for parallel runs to ensure all processes will adapt

* MAINT: Changing size field names and default to ERM

* MAINT: Changing size field names and default to ERM

* BUG: Fixed error with adapt with interface mode

* BUG: Fixed error with adapt with interface mode

* MAINT: Moved the tests around to push simmetrix tests at the end

* MAINT: Moved the tests around to push simmetrix tests at the end

* DOC/BUG: Added documentation strings for cMeshAdaptPUMI.cpp and added all-reduce to mass check function

* DOC/BUG: Added documentation strings for cMeshAdaptPUMI.cpp and added all-reduce to mass check function

* DOC: Added documentation strings for MeshAdaptPUMI.h

* DOC: Added documentation strings for MeshAdaptPUMI.h

* DOC: Added documentation for ERM

* DOC: Added documentation for ERM

* DOC: Added documentation strings for SizeField functions

* DOC: Added documentation strings for SizeField functions

* TST: cleaned up the constant flow test directory

* TST: cleaned up the constant flow test directory

* TST: cleaned up constant-flow parallel test directory

* TST: cleaned up constant-flow parallel test directory

* TST: Removed splashcube directory and cleaned Couette and dambreak test directories

* TST: Removed splashcube directory and cleaned Couette and dambreak test directories

* TST: removing some deprecated files

* TST: removing some deprecated files

* TST: cleanup and fix size field input

* TST: cleanup and fix size field input

* TST: Added test cases that utilize gmsh meshes

* TST: Added test cases that utilize gmsh meshes

* TST: Moved older test cases elsewhere for safekeeping

* TST: Moved older test cases elsewhere for safekeeping

* BLD: Removed env-scorec.sh script from repo

* BLD: Removed env-scorec.sh script from repo

* BUG: missed a bug regarding cerr output

* BUG: missed a bug regarding cerr output

* BUG: Size field configurations weren't changed in NumericalSolution

* BUG: Size field configurations weren't changed in NumericalSolution

* MAINT: Added assert statements for error field and size field

* MAINT: Added assert statements for error field and size field

* DOC:Created directory for demos with readme files detailing how to convert a standard case to a SCOREC case with MeshAdapt

* ENH: Changed printing of error estimate into an std::err output

* BUG: Added a condition for situations when targetError=0

* ENH: Set the threshold error to be the first error measurement, set a catch such that the adapted mesh must adapt until the error is below threshold

* TEST:Fixed simmetrix dambreak test by removing reload simmetrix bc.

* CLN: Test removal of unnecessary file

* Revert "CLN: Test removal of unnecessary file"

This reverts commit d4d4ae5aa105eb733a365cca267e241c96760823.

* CLN: Removed .nfs file from test directory

* BUILD: Turned compilation of scripts on again and moved simmetrix tests under check_simmetrix

* MAINT: Removed deprecated env.sh file

* MAINT: Commented out unused BC related function

* BLD: Added compiler macro for outputting mesh info when mesh loads

* updating jupyter version and stack dependencies

this enables many new ipython widgets and jupyter notebooks features

* force fetch on Makefile:default_stack repos

* added cycler package

* added backports-shutil dep

* added more ipython deps to stack

* update stack commit again

* fixing shapely in stack

* removed scorec from default stack

* added python-lzma

* fixing default_stack target

* updated Dockerfile to work with current jupyterhub

* updated hashdist and hashstack commits

* close hdf5 files after each test runs

* updated test output, fixed gauge MPI bug,  removed some warnings

* tried to fix int conversion problem in WaveTools.py

* added some system dependencies for travis builds

* fixed  spacing in .travis.yaml--got to get a yml emacs mode

* trying pip install of pyliblzma so hit can do .xz files

* turning down hit verbosity

* updated hashdist to turn off progress bar that fills up logs

* updated Dockerfile to allow multiple modes of running the container

supports terminal, ipython, local notebook, and jupyterhub

* updated Dockerfile with more OS packages and hashdist_default

* updated zmq in stack and how pyzmq is build in Dockerfile

* cleaned up Dockerfile and tried to fix pip3 pyzmq build

* more stack and hashdist fixes

* added new test data

* merged recent changes and removed simmetrix dependencies

* TST: Moved meshLoad test to pytest directory

* TST: modified meshLoad test to check specific mesh statistics

* TST: Removed meshLoad test from Makefile

* TST: Added Couette gmsh load/adapt case to pytest directory

* TST:Reorganized MeshAdaptPUMI test directory for ease of modifiying setup.py

* TST: Added the MeshAdaptPUMI test directory to be packaged with egg for Travis CI

* TST: Fixed tests that didn't merge with master branch and caused test failure.

* TST: Travis fails to compile, possibly due to remote scorec build.

* TST: Added verbosity to delay Travis timeout

* TST: Attempt to rebuild both scorec and zoltan libraries after downloading every other package from the cache.

* TST: Add sudo privileges to remove scorec and zoltan builds.

* TST:Revert the attempts at modifying the Travis build to force rebuild of scorec library

* TST: Increased indent of MeshAdapt tests and removed initial script line to conform with other tests

* TST: More formatting of files for conformity

* TST: Make travis pytest like the make test call

* TST: Revert previous commit and call make test directly

* switching to containerized build

* trying to using python-lzma instal of pip install pylzma

* do git lfs fetch instead of checkout

* debuggin lzma issue

* fixed apt install of lzma

* try to load lzma and print version

* forcing system python for 'make install'

* try pip install as user since it looks to be a python virtualenv

* cleaned up lzma stuff

* run py.test on installed proteus package

* add back lzma from overzealous cleanup

* trying to fix pyliblzma

* blurg. trying python-lzma to see if that gets deps

* updated hashstack with scorec shared lib

* updated zoltan config

* comment out 3PF and 3PSed

* force build with mpicc andmpicxx from profile

* ./ -> ../hashdist

* test numpy before testing proteus

* forgot git lfs checkout after fetch

* dropped -v from build

* test numpy before building proteus

* cleaned up blas in linux2 stack

* modified openblas-lapack config

* updated petsc config

* got rid of superfluous openblas build

* testing full virtual machine build

* testing containerized build one more time

* switching back to full virtual machine, re-enable RANS3P

* ENH: Enable passing of error estimate to python code for ease of testing

* TST: Added assertion for error value for Couette test

* TST: Added test for comparing the discretization error with the error
estimate. The estimate should always be larger. The test will need to be
revisited at some point to make use of the proteus infrastructure
regarding computing Jacobians and extracting basis gradients.

* MAINT: removed some antiquated statements

* MAINT: Reformatted error estimation and adaptation blocks as individual member functions of NS_base class

* TST: Added test for parallel mesh loading

* TST:Serial test for MeshAdapt workflow through proteus

* RVRT: undid non-relevant changes in the memory leak commit regarding casting and an assertion.

* MAINT/DOC: Removed argument requirement for adaptMesh and added simple documentation strings for error estimate and adapt calls

* MAINT: Removed old debug code

* DOC: Add some basic documentation strings to MeshAdaptPUMI class for doxygen

* ENH: switch the adapt trigger conditional from the sequence step to the tCount

* BUG:Added separate time-step solve counter to trigger adapt

* BUG: fixed an issue where errorOnly logging still adapted

* MAINT: Turned off writing of parallel meshes, is for debug use only

* ENH: Modified functions to allow for 2D meshes and error estimation. This includes a new isInSimplex() function

* ENH: Added a way to measure h of triangular elements for adaptivity

* BUG: improved logic for detecting mixed elements and resolved compilation issue

* ENH/DOC: Added draft of jupyter notebook for 2D dambreak with adaptivity controls

* DOC/BUG:Modified paraview state file to use relative path

* DOC: Added dambreak2D_adapt to applications notebook

* DOC: Added sample images for mesh adapt for dambreak notebook

* BUG: Added the dof_last member in case save_dof flag is on

* MAINT: Removing checkpoints directory from adapt notebook

* TST: Added 2D mesh load and check for MeshAdaptPUMI

* TST/BUG: Explicitly close PCU communications in destructor for easier testing

* TST/BUG: Added 2D msh to setup.py to remove testing errors

* Finalise gmsh support (#432)

* Added gmsh support for 2D domain

- Domain.py: added writeGeo for D_Base; removed duplicates
- Domain.py: MeshOptions.use_gmsh switch for converting geo to triangle
- added gmsh2triangle python script

* Domain.py: added use_gmsh[=False] switch to MeshOptions

* gmsh2triangle: hotfix for .msh with-2 option

* SpatialTools update for gmsh use

- setChilShape() to define other shape within shape
- setParentShape() to define shape within other shape
- volumes in 3D (surface loops)
- facets in 2D (necessary for gmsh)
- holes_ind to give index of facet (2D) or volume(3D) not to be meshed
- _assembleGeometry updated

* gmsh2D: generation on master processor only

* fixed gmsh region flag problem with facets in 2D

* D_base: added empty list attributes

* gmsh2proteus: import BC tags; CustomShape typo fixed

* Gmsh domain: added he_max option; polyfile->geofile

* Domain: removed MeshOptions class

* MeshOptions moved to MeshTools

* added mesh options; SpatialTools tests passed

* BC/SpatialTools update: fixes and rigid body BC

 - added Chrono (rigid body) BC
 - fixed Tank2D facets
 - removed out of bounds access in relaxation zone in 2D
 - functions for relax zones accessible through python for debugging

* BC: relaxation zone bug fix (ignored last zone)

* BC: removed print statement

* WaveTools: fast switch bug fix

* removed call to Tetgen for 2D domain

* updated moveMesh BC test

* moved gmsh2triangle to MeshTools; added docstring

* added simple test for gmsh; docstrings for MeshOptions

* SpatialTools: Sphere added; facets assembling fixed

* FemTools: getValue() updated

* changed base of Sphere in mprans version

* BC: reset conditions for sliding mesh nodes

* fix for parallel bug reported in PR #432

* updated hashdist/stack, cleaned up some print statements

* updated hashdist/stack, cleaned up some print statements (#502)

* Fix forchheimer (#503)

* updated hashdist/stack, cleaned up some print statements
* added semi-implicit form of Forcheimer term

* Fix test gmsh (#504)

removed use of unix time command (not always avail)

* removed unused ipython sphinx extensions (#505)

at present we're not installing ipython by default...

* Adds a new TestTools class for the air-water-vv repository.

* updated to 1.3.1, fixed circular import in MeshTools (#507)

* pull scorec dependency info from hashstack packages (#510)

* change dashboard install and inconsistent test/check (#513)

* applying fixes to get docker automated builds working (#514)

* updated dockerfile and makefile to fix jupyter install (#516)

The Docker automated build is really error-prone, especially the pip install phases after proteus has been built, where the order of pip installs seems to matter. This updates Dockerfile and Makefile to get the automated build to finish without error, but hub.docker can't seem to push the final image.

* added jupyterhub to Dockerfile

* Fixed documentation

* corrected documentation

* Using JAcobsen function

* switch remote bld cache to jovyan buildbot's (#518)

* Fixed compilation errors

* Fixed bugs

* Minor changes

* Adds BDM2 post processing for 2D and 2D

* Tests added for bodydynamics

* npt.assert_array_equal added

* Bugs fixed, test modules updated

* Fixing tests

* Fixed tests: BC error fixed in openAir

* Fixed tests 2: BC error fixed in openAir

* Fixed tests 3: BC error fixed in openAir

* Included vof.advective

* MeshAdaptPUMI/ErrorResidualMethod: use Vector3 assignment operator. (#524)

* MeshAdaptPUMI/ErrorResidualMethod: avoid dynamic arrays. (#523)

* MeshAdaptPUMI/ErrorResidualMethod: avoid dynamic arrays.

* BUG: Initialize variables for isInSimplex

apf::Matrix3x3 K and apf::Vector3 F need to be initialized  specifically to account for 2D cases that don't use all the entries of those structures.

* removing vof_advective

* Changed default values in SpatialTools and BoundaryConditions

* included mesh adaptivity extensions

* Fixed typo

* Fixing typos

* More typos fixed and added missing arguments in tests

* make sure Dirichlet values are set for Velocity at atmospheric bdry (#530)

* make sure Dirichlet values are set for Velocity at atmospheric bdry

* set zero diffusion condition in boundary normal direction for atm.

* Include post-processing in travis tests and add missing test files.

* Blank lines deleted

* Minor changes

Boundary conditions put in order: dirichlet, advective, diffusive.
Deleted blank lines.
Description added on turbulent boundaries.

* Refactoring and cleaning up unecessary calculations

* PiecewiseLinearComplexDomain: gmsh to tetgen conversion

* fixed and added test for gmsh; msh2triangle -> msh2simplex

* gmsh 3D domain: cleaning up and test for v3.0.2

* [FIX] SpatialTools: bounding box of 2D Domain

* update stack (crhono and gmsh)

* updated vertices and elements for gmsh test with  new gmsh version

* check 3d gmsh to within 2% relative difference

* Adds proper imports to setup.py. (#537)

* Adds proper imports to setup.py.

* Adds an acception for tetgen files.

* warn when neigh and edge files aren't generated

* fixed some bugs in log output

* fixed tab and added documented missing arguments

* Added functions to return each window

* Fixed identation

* Added public python arrays for having each window and handover points

* modified hydrostatic outlet BC with "exact" profile (#533)

* Better error/help message for gmsh2tetgen (#536)

* DOC: Added a more descriptive error message when no inputs are provided to gmsh2tetgen

* DOC: Added an additional string on the length scale parameter in the gmsh2tetgen script

* Issue gauge domain (#526)

* add h[i] to Line 1003

* add comm.rank to line 266

* Add fem dem (#543)

* started adding IB terms to fluid momentum equation

* replated print statements with log statements

* added source terms for dem particles described by level sets

* tested with single particle and no particle rotation

* added particle force and torque calculations

* updating to adjoint term

* uncommented force calculations

* adding corps logo

* Update FEMDEM.ipynb

* Update FEMDEM.ipynb

* Update FEMDEM.ipynb

* Update FEMDEM.ipynb

* added cylinder mp4

* added images

* embedded widgets

* switch back to markdown cells for everything

* point to proper binary cache in Dockerfile

* use gcc for make jupyter command

* Update Dockerfile

* Update Dockerfile

* add explicit pip3 install versions of jupyter tools

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* changed jupyter setup

* updated Dockerfile

* added notebook for crrel dem

* Update Dockerfile

* Update Makefile

* Update Dockerfile

* modified jupyter setup

* removed PetscExtension

* added ipympl extension

* changing blas linkages

* init nSpace2 in ctor

* added rpath linkage for proteus modules on linux

* updated stack

* updated stack

* updated 3D IBM terms

* added ipympl to Docker  setup

* added hashdist_package target to build proteus binary

* update stack

* added the solid level sets to the model.q array (for batch)

* based Docker container off erdc/stack_base, added ipymesh

* added README to spheres notebook dir

* put all the jupyter/ipython parallel mods in Makefile (#546)

* Adimako/improvements (#547)

* Changed VGen to LGen for consistency

* Updated default overlap values, and implemented in RandomNLWavesFast

* Added steadyCurrent with ramp time

* updating to release 1.3.3

* adding release instructions

* switched versions to dev and turned off verbose default logging

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a missing file.

* Adds a viscosity scaled pressure mass matrix solver.

* Rebase with master.

* Fix failing tests.

* Updates to SchurQp tests.

* Remove old setup.py files.

* added binder badge to readme

* updated mailing address

* updating license and cleaning up root directory

* use normalized form of dev version (dev0)

* fixin dev normalization

* SCOREC 2D Reconstruct Part 1 of 2: 2D Error Estimate and Adapt (#548)

* ENH:Modified PUMI mesh code to set element material types and also to begin loading in parallel 2D meshes

* more code associated with 2D parallel SCOREC

* ENH/BUG: Assembling the spatial tools requires generation of the mesh, but with SCOREC tools, the mesh is already defined

* BUG: Fixed argument list for convertFromPUMI post adapt

* TST: Added PUMIMesh 2D parallel load test

* TST: Added test for 2D multiregion material types with serial PUMI workflow

* MAINT: Clean up of a comment

* TST: Added necessary files for new tests in setup.py

* TST/BUG: Added proper mesh file for TwoQuads test

* MAINT: Removed unnecessary file

* Small edits.

* SCOREC 2D Reconstruct Part 2 of 2: 2D reconstruction (#549)

* ENH:Modified PUMI mesh code to set element material types and also to begin loading in parallel 2D meshes

* more code associated with 2D parallel SCOREC

* ENH/BUG: Assembling the spatial tools requires generation of the mesh, but with SCOREC tools, the mesh is already defined

* BUG: Fixed argument list for convertFromPUMI post adapt

* ENH: Base commit for reconstruction of mesh

* MAINT: Remove reconstruct mesh call from PUMI mesh construction

* MAINT: Remove declaration of a second mesh m2

* ENH: Allows serial reconstruction of a mesh by associating each boundary entity with a new model entity. gEdges are defined with vertex adjacencies, and gFaces are defined with vertex adjacencies.

* ENH: Added flag for isReconstructed

* MAINT: Separated the reinitialization routine post adapt into a separate function

* Able to reconstruct serial mesh in 2D and transfer back into Proteus.
Model-to-Material arrays are introduced for recovery of material type post-adaptation.
All mesh edges are now created to make the reconstruction more exact.

* ENH: added faceList and regList data structures to domain base type for compatibility with PUMI

* ENH: Add basic inheritance scheme for vertices classified on model boundaries

* MAINT/ENH: remove some unnecessary code and modify the adapt conditional to only detect the existence of a PUMImesh

* BUG: Fixed the conditionals that correspond to reconstructing the mesh so tests would pass

* Added functionality to determine 2D intersections of mesh entities with specified model entities

* Added functionality to pass in model information from Proteus and associate reconstructed mesh entities to that model for simple 2D cases

* ENH: 2D simple model and mesh reconstruction is available to be passed into adaptivity

* ENH: Migrated CGAL usage to C++ side for exact predicates/constructions

* BLD: Link the CGAL and other libraries to MeshAdaptPUMI

* Remove pdb statement

* CHKPT: Store state of code where CGAL is used to reconstruct barycenter/centroid arrays. line.has_on() tests fail

* RVRT: Revert to python-side mesh2model classification

* ENH: Added function to determine if a point is on a line that joins two points. Removed CGAL references

* ENH: Added limited capability to reconstruct model based on facet list given some assumptions

* BUG: Added some more logic for mesh2model classification so that it can handle the weir case. Modified PSLG domain to include facets

* API: Change how the MeshAdapt object is initialized/attached

* BUG: Added some more logic to address how model reconstruction is done

* CHKPT: State of the code for developing parallel mesh reconstruction but need to switch working computers

* CHKPT: Code is broken with significant changes, but better late than never

* CHKPT: May need to overhaul model numbering scheme, so set a checkpoint

* CHKPT:Working 2D parallel reconstruction but memory error

* MAINT: Removed unnecessary code, still has termination memory error

* BUG: Removed unnecessary code that was causing some memory issues

* Readded scorec_core code to avoid having to modify the hashstack build dependency

* BUG: Slight bug where the edge material tracker would be incremented unnecessarily

* MAINT: Removed some deprecated code

* ENH: allow number of model regions to be passed to SCOREC code during all reconstruction cases

* ENH: Proper reconstruction of multi-region cases/fixed material type association

* BUG: Copy memory contents as opposed to copying pointers in the global structures

* BUG/TST: Fixed memory double free issue fully and removed partition info field to fix tests

* FIX: resolved the improper classifications of materials on the part boundaries in parallel cases

* MAINT: Removed unnecessary barriers and print out statements

* DOC: Added documentation strings to the reconstruction function to briefly explain process

* ENH: Add feature to adapt based on mesh quality checks (#552)

* ENH: Added functionality to adapt based on mesh quality. Will need to resolve bugs

* MAINT: moved pumi logging strings around

* FIX: Streamlined log output across all sfConfigs and fixed mismatch between sfConfig field names

* TST:Added an assertion that any reconstruction must be done in 2D

* FIX: resolved api issue with MeshOptions and MeshParallelPartitioningTypes

* LOG: Added log statement for material array repopulation

* Adds LSC preconditioning class.

* (C) for HR Wallingford

* IBM particle support broke the nParticles=0 case; this fixes it. (#557)

* Adds an LSC preconditioning option.
     - adds an lsc preconditioner
     - adds an lsc operator shell
     - adds a few tests for the lsc operator

* Fix comparision with None

If the value of flag_elementBoundaries is not None, python throws the following
error:

ValueError: The truth value of an array with more than one element is
ambiguous. Use a.any() or a.all()

* switched back to using .py,.pyx, and .h files (#558)

* switched back to using .py,.pyx, and .h files

* fixed particle force i/o for parallel runs

* fixed regression breaking existing tests with old linearSmoother

* (C) for Alvin Zhang

* Alistair's copyright.

* Update CONTRIBUTORS.md

* Update CONTRIBUTORS.md

* Update CONTRIBUTORS.md

* equalsNone2isNone_patch (#563)

* MAINT: substituted all ==None comparisons to is None

* MAINT: substituted all instances of != None with is not None

* FIX: substitution error for cases when you have STRING==

* MAINT: substitution for case when pattern is !=None

* MAINT: substitution for cases with ==None

* Optimize pressure calcs (#569)

* re-enabled Nitsche adjoint for pinc

* updated optimized pressure calculation for projection scheme

* enabled optimized pressure solve for rans3p

* enabled optimized pressure solve for rans3p

* fixed mass flux for rotational form of pressure calc

* Fixes a potentially fatal error for some logEvent calls. (#564)

-  This patch corrects a fatal error that occurs
      in a ksp-log call when the initial solution of a nonlinear
      iteration is in fact the true solution.

* adds routines for reading a triangular mesh in the XMS format. (#568)

* adds routines for reading a triangular mesh in the XMS format.
Setting p.meshfile to the mesh file's base and nd=2 with p.domain=None will trigger the load

* tweaking file location for meshfile

* forgot to add mesh files to setup.py datafiles

* Update mesh.cpp

* Include SolitaryWave in pxd (#567)

* Fixed bug in NonlinearSolver (#565)

* Fixed bug in NonlinearSolver

* Fix broken API for setResTol.
    - This fixes a regression caused by changing the API
      for the linear solvers setResTol function.

* Update CONTRIBUTORS.md

Add nehaljwani to the contributors list

* Multi-body and moorings dynamics with Chrono for Proteus (#525)

* [ADD] Chrono wrappers for multibody dynamics

* MBD: chrono moorings coupling working

* MBD: Chrono collision detection added

* MBD: chrono wrappers refactoring; external forces for cable

* MBD: chrono cable external forces updated

* typo fix

* Chrono testing version for force oscillation

* [BUG] chrono: nans in parallel when using moorings

* [BUG] nans on master processor using hydra

* mbd: commented out debugging lines; corrected typo

* mbd: choice between beam and cable elements for moorings

* [FIX] chrono calculations on rank 1 in parallel

* ChElementCableANCF used in chrono; prescribed sine motion added

* mbd: added documentation (partial)

* MBD: cythonised further; py headers in different files

* MBD: added ISS coupling scheme

* msh2simplex: update node flags with face flags (3D)

* Isosurfaces output in .h5 files

* NumericalSolution: fix fileprefix when using gmsh for 3D domain

* MBD: kdtree parallel lookup fixed; WIP on coupling schemes

* MBD: added Euler beams for cables, updated external forces

* msh2simplex: removed flag assignment for triangle nodes in 2D

* MBD: added separated mesh motion function (translation/rotation)

* reintroduced MeshAdaptPUMI in setup.py

* Cekees/mbd/chrono (#570)

* re-enabled Nitsche adjoint for pinc

* updated optimized pressure calculation for projection scheme

* enabled optimized pressure solve for rans3p

* enabled optimized pressure solve for rans3p

* fixed mass flux for rotational form of pressure calc

* worked on isotropic interface size field

* fix 2D Darcy term and isotropic adaptive scheme

* update stack with fixed zoltan build

* updated hashstack (chrono)

* removed irrlicht dependency

* enable avx extensions by default for chrono

* Adding (C) for Nathan Neri.

* Mutable Context (#544)

* refactor Context to support mutable=True flag

* added test for mutable and immutable Context variants

* improvement of TankWithObstacle2D in mprans/SpatialTools.py (#571)

create a segment at the bottom of an obstacle and create a material

For example for a porous zone in a submerged breakwater as opposed to an impermeable breakwater.

* updated gmsh config

* Update CONTRIBUTORS.md

* fixed typo Dit->Dict (#578)

* Include more decimal places

* Included double precision

* [FIX] config file for installing SCOREC on centos

* Modify logging during time step in NumericalSolution to clarify final reached time

* Update CONTRIBUTORS.md

Copyright Ido Akkerman

* removed hanging C-style comment that broke 2D Darcy terms (#587)

* centos.py: removed commented out zoltan

* Documentation improvements.

* SpatialTools: fix tank3D and region issues (#594)

* Fix dropbox tests (#596)

* fix dropbox links

* try to fix travis source and build caches

* fixed travis badge

* fix erdc-cm refs

* updated caches for travis

* Wall treatment for turbulent flows (#584)

* Creation of wall functions

* Adjustments on boundaries

* Wall functions based on global velocity for ke and kw

* Wall functions class added: to be tested

* Setting turbulent wall in ST and BC

* Using calculate function in the class

* Bugs fixed. Wall functions run for single processor

* switched back to using .py,.pyx, and .h files

* fixed particle force i/o for parallel runs

* fixed regression breaking existing tests with old linearSmoother

* Wall functions based on gradient

* Multiple walls in SpatialTools. BC on the gradient

* Multiple walls in SpatialTools (2)

* LogEvent enabled

* Extraction of the turbulent kinetic energy

* Kappa extraction: fixed bugs and diffusive BC imposed

* Pope's book wall function implemetation

* Dirchlet stable formulation. Documentation added

* Set default values for turbulent parameters

* Test addded for BC: inlet, outlet and wall functions

* updated coding guidelines (#603)

* updated coding guidelines

* update chrono build

* fix chrono-dependent packages

* Cekees/pstab (#598)

* SDF function now takes the particle index as the first argument rather than time

* Fixed extra parentheses error.

* MBD: added separated mesh motion function (translation/rotation)

* reintroduced MeshAdaptPUMI in setup.py

* Setting particle velocity.

* Adding angular velocities.

* Added angular velocity to particle acceleration. Added viscous stress term to force calcualtion.

* debugging particle forces in RANS3PF2D

* Add 1D Riemann problem

* SWEs: copy SSP33 method from mwf implementation

* SWEs: checkoyt SW2DCV.py from mquezada/second_order_SWEs

* SWEs: checkout SW2DCV.h from mquezada/second_order_SWEs

* SWEs: checkout cSW2DCV.pyx from mquezada/second_order_SWEs

* SWEs: add SSP33 class within TimeIntegration

* SWEs: Add explicit solvers for SWEs

* Cekees/mbd/chrono (#570)

* re-enabled Nitsche adjoint for pinc

* updated optimized pressure calculation for projection scheme

* enabled optimized pressure solve for rans3p

* enabled optimized pressure solve for rans3p

* fixed mass flux for rotational form of pressure calc

* worked on isotropic interface size field

* fix 2D Darcy term and isotropic adaptive scheme

* update stack with fixed zoltan build

* SWEs: Change initial conditions for 1D Riemann problem

* SWEs: update to latest version of SWEs code from branch mquezada/second_order_SWEs

* updated hashstack (chrono)

* enabling using Z value of mesh input for bathy

* works with malpasset

* removed irrlicht dependency

* added velocity error estimate

* Fixx problem with FCT

* Add problem: dam over bumps

* Add Malpasset test

* Fix issue (for reading bathymetry) when merging some changes

* Minor change in FCT step

* added unstructured test to sw_hump case

* use Context in test files and archive bathy as mesh

* added user defined size_field ("isotropicProteus" option)

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a Chebyshev semi-iteration solver.
     - Add a new class to create and apply a Chebyshev semi-iteration
     - Introduces several tests to verify resonable output
     - Adds a new function for turning dense numpy arrays
       into petsc4py matrices (really only useful for testing)

* Modifications made for parallel implementation.

* Fixed typo in setup.py.

* Creates a selfp class in Proteus.

* Removed unnecessary MPI_barriers.

* Refactors matrix construction to reduce parallel overhead.

* Adds RANS2P2D functions for building operators.

* PCD RANS2P with parallel support.

* Updates NumericalAnalytics for multiphyics problems.
	- Adds a csv file exporter.

* Updated TestTools utilities.

* Changes Chebyshev Semi-Iteration to be consistent with IFISS

* Adds a parallel info tracker for multilevel meshes.
     - Fixes a broken test.

* Latest edits for RANS2P dambreak problem

* fixed typo Dit->Dict

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* - Added the support for imposing the velocity BC for particles; particle_velocityList must be supported just like particle_sdfList.
- Added the support for simulating granular material; In this case granular_vel_Calc, and granular_sdf_Calc must be supported which calculate the velocity and sd field for any particle i.
- Bug fix in defining the surface penalty constant.
- Added the suport to export a single sd field for granular material simulations.

* Applied the fixes from
f8fdac45f122092ff05847220fac720e121c01b4 [f8fdac4]
origin/rans3p_bc

* Testing Proteus integration.

* Archive bathymetry and water elevation

* added surface area check

* Debugging force calculations.

* Compute normalx and normaly vectors

* sdf debugging.

* add necessary variables in SW2DCV.py for reflecting boundary conditions

* change dam over bumps to use new reflecting BCs

* change default mesh to unstructured

* Added the surface area check and viscous forces from rans3p_bc
80601e0a4e48863b52cedacd90f7be9b5ae258e0

* test reflecting BCs over dam break over bumps with non rectangular domain

* fixed parallel force calc for ibm in 2D

* fixed parallel force calc for ibm in 2D

* Changes to work with multiple particles.

* Add test for gauges

* fixed merge

* deep copy into dof[:] instead change dof reference to new array

* Changes to get 3D IB case working.

* Several changes to SW2DCV.h, SW2DCV.py and cSW2DCP.pyx. Mainly to change regularization and improve robustness

* ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame

* Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"

This reverts commit b6ea6dd4abece7c6d458062253cf6688ebc8bc94.

* Debugging IB particle forces.

* stabilization stuff

* 3D Mesh Reconstruction (#589)

Add 3D capability for SCOREC mesh-reconstruction from Proteus mesh data structures.

* ENH: Added serial 3D mesh reconstruction capability. Littered with debug statements

* MAINT: Removed debug statements and added doc strings for some conditionals. Parallel seems to work so long as partitioning is set correctly

* FIX: prevent boundary elements from collapsing by classifying exterior edge entities as model edges

* FIX: resolve assert if multiregion domain and add logic to inherit node materials from boundary materials in 3D

* fixed typo Dit->Dict (#578)

* FIX: only have owning edges send model info

* Revert "Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"" (#588)

This turns on the hard-coded `size_scale` and `size_frame` fields for the `anisotropicProteus` option.
This reverts commit 31f5dfafd59d7d497637b416afada1c5869b2c18.

* Added python script that creates symbolic links needed for proteus build

* Change the place where the low order dissipative matrix is computed

* Add function in c++ to compute the LO dissipative matrix, the edge_based_cfl and others (smoothness indicator and EV residual)

* Compute desired dt to fulfill positivity constraints from within choose_dt in RKEV

* Remove some computations on function that computes the edge_based_cfl

* Change again place where dLow is being computed

* Avoid computing dLow twice if we are in the first stage of the SSP method

* Add minor bug in SW2DCV.py

* Fixes the issue for running the ib cases in parallel, for 2D and 3D

* Archive quantDOFs (if the model has it)

* Adjust dt before calculateResidual based on 2nd order solution

* Change flags in solvers for SWEs to turn off part of the code in the 2nd call of calculateResidual

* This is a branch to test the different methods to apply no slip boundary conditions on IBs,
- The important part of this commit is applying the one-sided penalty terms only inside the IB, not outside; this is important to make sure that the boundary layer around the bodies are not modified; This finally makes sure that drag calculation is not affected by the source terms introduced at the fluid-solid interface.
- Another thing that is tested in this commit is adding dV*(1.0 - H_s)*C_vol*(u-u_s)*rho term to the force terms; this is to make sure that the momentum loss inside the IBs are taken into account as well. However, this requiers that u=us is satisfied inside the IB up to a fairly tight tolerance, otherwise large alpha and beta constants will results in a non-zero contribution in this exrpression.

* Add 2D paraboloid test

* Add 1D paraboloid test

* comment out pessure stabilization terms in RANS3PF2D

* This commit contains two different taks:
1- Fixing the issue with imposing the u=u_s at the inner nodes of the IB; most importantly the last five (except the third from last) chunk of the changes in RANS3PF2D.h are for this purpose. The pressure gradient term effect was also ignorded in the evaluateCoefficient method
2- WIP backend for the adaptive mesh refinment at the fluid-solid interface was added, but this is not working at this point

* Applying the changes form RANS3PF2D.h to RANS3PF.h

* Clang formated

* bug fix for particle simulation

* Adjoint stabilization.

* merge in orgin/master

* version of rans2p2d with no stabilization in momentum equation

* Bug fix in the RANS3PF for the cases where multiple particles are simulated.
The penalty terms should have been applied to all particles

* re-enabled shock capturing

* Fixed the bug for simulating multiple particles in 3D.

* Compute entropy residual based on flat bottom (b(x)=0)

* Add more than one gauge to test gauges with SWEs

* Add gauges and correct location of dam in Malpasset test

* Updated the mesh adaptivity for solid level set.
This needs to be modified for moving objects, since there is a lag between adapted mesh and the zero level set

* added hard-coded signed distance function

* corrected sdf for cavity test

* added compressible (non-conservative) form of momentum

To run as it has been in prior releases
COMPRESSIBLE_FORM=0.0
MOMENTUM_SGE=1.0 (turns off all subgrid error in momentum)
VELOCITY_SGE=1.0 (turns off velocity subgrid error in momentum)
PRESSURE_SGE=1.0 (turns off pressure subgrid error in momentum)

* fixed non-conservative time derivative and weak BC's in nc form

* re-enable density scalings

* switched to HamiltonianJacobian term

* cleaned up non-conservative form

* turn off density scaling in rho-scaled mass and advection

* switch to scalar diffusion in PCD laplace operator

* added mass lumping for pcd mass operators

* Adds a linearSmootherOptions tuple.
     - In our work, we've found that preconditioner settings can
       affect performance.  To make it easy to switch between these
       settings I've added a tuple that allows users to specify
       different preconditioner settings in the numericals and
       physics files.

* Adds a numerical viscosity option for the two-phase PCD operator.

* Changes the COMPRESSIBLE tag to NONCONSERVATIVE.

* Setup incompressible form for 3D case.

* Adds a lumped solver option for PCD mass matrices.

* Gauge compatibility fix with adaptivity (#592)

* FIX: ignore boundary flux contributions at interpart boundaries for element partitioning. Added a warning statement in NumericalSolution to describe limitation.

* MAINT: Removed some std::cout statements from grading algorithm

* MAINT: warning string should apply for any type of partitioning

* DOC/TST: Moved warning to RANS2P to fix Stokes Test that depends on log comparisons

* Use FE for malpasset test

* Cleans up merge with master branch.
       - Removes some leftover merge conflicts.
       - Corrects failing tests after merge.
       - Modifies operator constructor.

* Adds null-space documentation to Sp operator.
     - Adds a constant null space flag to Sp operator
     - Adds more documentation to Sp operator
     - Changes some print statements to logEvent
     - Deletes some code duplication.

* Adds boundary null space flag to OneLevelTransport class.
     - Adds a boundaryCreatesNullSpace attribute to the physics file
     - Adds a bdyNullSpace attribute to OneLevelTransport
     - Fixes hack so global nullspace is now set based on model specs

* Small documentation and code clean up.

* Update asserts in parallel setup.

* Adds phase_function option to RANS2P coefficients class.
     - Allows the user to specify a signed distance and
       vof function for the two-phase NS RANS2P coefficients.
     - Adds and exception handle for two-phase PCD preconditioner
       options.

* cleaned up RANS2P

* replaced Sequential_FixedStep_Simple with Sequential_tnList

* updated Sequential_FixedStep_Simple, part 2

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* added surface area check

* fixed parallel force calc for ibm in 2D

* fixed merge

* Add function calculateRedistancingResidual within NCLS model

* Add calculateRhsSmoothing within NCLS

* Add function calculateResidual_edge_based_EV within NCLS

* Add RKEV to NCLS.py

* Add SSP33 into TimeIntegration.py

* Add PeriodicBoundaryConditions argument into numerical flux: Advection_DiagonalUpwind_IIPG_exterior

* Add 1D test to NCLS model

* Add calculateResidual_entropy_viscosity and calculateJacobian_entropy_viscosity functions to RANS3PF models in 2 and 3D

* Compute CFL not within functions from subgrid errors

* Add convergence test on projection scheme

* Add cMax and cE (for entropy viscosity) parameters to RANS3PF.

* Add option to switch between calculateResidual and calculateResidual_entropy_viscosity based on use_entropy_viscosity in the _n.py model file

* Hard code the option to stop considering pressure gradients. This is for debugging and to study convergence of momentum equations.

* Add changes for entropy viscosity stabilization from 3D to 2D RANS3PF

* Select appropiate Jacobian depending on the type of stabilization (SUPG vs EV)

* Compute forces at quad points (during preStep) if the _p.py file has dictionary forceTerms

* Pass force terms at quad points to RANS3PF model

* Some changes to test for convergence on Proj Scheme

* Add KILL_PRESSURE_TERM to RANS3PF models. This is for debugging and to check convergence of momentum eqns

* Allow Pres.py model to exist without pressure increment model. This is useful to test convergence of the momentum equation

* Pass force terms to evaluate coefficients. Note: this is relevant just for the residual in the interior of the domain

* compute abs(det(J)) inside RANS3PF.py

* debugging prob with self.q[(m,0)]

* fix bug when setting self.q[(m,0)]

* add dV_u to RANS3PF.py model

* Pass q_grad_u, ..., ebqe_grad_u, ... to calculateResidual to save grads for computation of H1 error

* pass grad(u) at quad points in the interior of the elements and the boundaries to calculateResidual

* Add convergence test on NS momentum equations

* set pressure change to zero in postStep if pressureIncrementModel is None

* Let dV_u be the same (by reference) as dV

* Add and pass velocityStar at quad points. This is to fix order of accuracy (from 1st to 2nd) on RANS3PF

* Add u_dof_old, ..., dt and quantDOFs vectors to RANS3PF model. This is to comptue entropy residual

* Correct entropy residual

* Archive quantDOFs

* Compute smoothness indicator per cell for every component

* change test on pure momentum eqns for proj scheme to make it more conveniet for changing viscosity

* Testing an artificial viscosity for NS

* Add files for convergence test on proj scheme

* add density and viscosity as functions at quad points. To test convergence

* change from passing kinematic viscosity to dynamic viscosity

* add structures for density and dynamic viscosity at quad point given by user function

* change formulation to not divide by rho and modify weak entropy residual

* Forgot to add this file

* Add computation of L2 error on pressure if p is in the batch and if the analytical function is given

* Add femSpace to constructor of writeFunctionXdmf to make it work with P2 spaces

* Fix pressure update considering variable time steps and zero out q_massFlux if useRotationalForm=False

* Pass divU to PresInc.h, allow (via a flag) the rhs to not be integrated by parts and modify the rhs via a compatibility condition

* Fix Null Space of PresInc model, add flags for int by parts, kill pressure and correct the velocity

* Pass to PresInc flag for integrating by parts and divergence at quad points

* changes to RANS3PF: change computation of entropy residual, compute div(U) at quad points and add some flags

* change some parameters and force terms to convergence test on pure momentum equations for RANS3PF

* add a 2nd manufactures solution, parameters, flags and others to the conv test for the proj scheme

* add EV to 3D RANS3PF

* fix bug in SUPG stab

* scale entropy residual by rho to make it have units of dynamic viscosity

* Add self.order to C0_AffineLinear and C0_AffineQuadratic on simplexes

* scale hK by 1./order_of_polynomial

* change entropy residual to average instead of max

* add assert about integration by parts of div(U) in PresInc

* turn off modulation on EV coefficient

* turn off modulation also in 3D code

* Change test for convergence

* checkout NCLS model from master

* Fix ratio of time steps to consider first order time integration

* re-indented RANS2P

* untabified

* untabified RANS2P

* added boundaryFlags > 0 check to Jacobian flux terms too

* re-indented RANS3PF

* re-indented RANS3PF

* updated RANS3P with bdyNullSpace arg

* updated coding guidelines

* switched to sudo=false; removed apt packages

* Updates Chebyshev semi-iteration to inherit from LinearSolver class.
	- Removes IterativeSolver class
	- Documentation edits
	- Moves class from LinearAlgebra module to LinearSolver

* update chrono build

* fix chrono-dependent packages

* re-enabled apt-get packages since they are on the whitelist

* fixed assert(phis)

* slight update to makefile

* Add entropy viscosity stabilized shallow water equations (#573)

* SDF function now takes the particle index as the first argument rather than time

* Fixed extra parentheses error.

* MBD: added separated mesh motion function (translation/rotation)

* reintroduced MeshAdaptPUMI in setup.py

* Setting particle velocity.

* Adding angular velocities.

* Added angular velocity to particle acceleration. Added viscous stress term to force calcualtion.

* debugging particle forces in RANS3PF2D

* Add 1D Riemann problem

* SWEs: copy SSP33 method from mwf implementation

* SWEs: checkoyt SW2DCV.py from mquezada/second_order_SWEs

* SWEs: checkout SW2DCV.h from mquezada/second_order_SWEs

* SWEs: checkout cSW2DCV.pyx from mquezada/second_order_SWEs

* SWEs: add SSP33 class within TimeIntegration

* SWEs: Add explicit solvers for SWEs

* Cekees/mbd/chrono (#570)

* re-enabled Nitsche adjoint for pinc

* updated optimized pressure calculation for projection scheme

* enabled optimized pressure solve for rans3p

* enabled optimized pressure solve for rans3p

* fixed mass flux for rotational form of pressure calc

* worked on isotropic interface size field

* fix 2D Darcy term and isotropic adaptive scheme

* update stack with fixed zoltan build

* SWEs: Change initial conditions for 1D Riemann problem

* SWEs: update to latest version of SWEs code from branch mquezada/second_order_SWEs

* updated hashstack (chrono)

* enabling using Z value of mesh input for bathy

* works with malpasset

* removed irrlicht dependency

* added velocity error estimate

* Fixx problem with FCT

* Add problem: dam over bumps

* Add Malpasset test

* Fix issue (for reading bathymetry) when merging some changes

* Minor change in FCT step

* added unstructured test to sw_hump case

* use Context in test files and archive bathy as mesh

* added user defined size_field ("isotropicProteus" option)

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a viscosity scaled pressure mass matrix solver.

* Adds a Chebyshev semi-iteration solver.
     - Add a new class to create and apply a Chebyshev semi-iteration
     - Introduces several tests to verify resonable output
     - Adds a new function for turning dense numpy arrays
       into petsc4py matrices (really only useful for testing)

* Modifications made for parallel implementation.

* Fixed typo in setup.py.

* Creates a selfp class in Proteus.

* Removed unnecessary MPI_barriers.

* Refactors matrix construction to reduce parallel overhead.

* Adds RANS2P2D functions for building operators.

* PCD RANS2P with parallel support.

* Updates NumericalAnalytics for multiphyics problems.
	- Adds a csv file exporter.

* Updated TestTools utilities.

* Changes Chebyshev Semi-Iteration to be consistent with IFISS

* Adds a parallel info tracker for multilevel meshes.
     - Fixes a broken test.

* Latest edits for RANS2P dambreak problem

* fixed typo Dit->Dict

* fix strong bc's in RANS3PF.py; working on pressure/foce issues

* - Added the support for imposing the velocity BC for particles; particle_velocityList must be supported just like particle_sdfList.
- Added the support for simulating granular material; In this case granular_vel_Calc, and granular_sdf_Calc must be supported which calculate the velocity and sd field for any particle i.
- Bug fix in defining the surface penalty constant.
- Added the suport to export a single sd field for granular material simulations.

* Applied the fixes from
f8fdac45f122092ff05847220fac720e121c01b4 [f8fdac4]
origin/rans3p_bc

* Testing Proteus integration.

* Archive bathymetry and water elevation

* added surface area check

* Debugging force calculations.

* Compute normalx and normaly vectors

* sdf debugging.

* add necessary variables in SW2DCV.py for reflecting boundary conditions

* change dam over bumps to use new reflecting BCs

* change default mesh to unstructured

* Added the surface area check and viscous forces from rans3p_bc
80601e0a4e48863b52cedacd90f7be9b5ae258e0

* test reflecting BCs over dam break over bumps with non rectangular domain

* fixed parallel force calc for ibm in 2D

* fixed parallel force calc for ibm in 2D

* Changes to work with multiple particles.

* Add test for gauges

* fixed merge

* deep copy into dof[:] instead change dof reference to new array

* Changes to get 3D IB case working.

* Several changes to SW2DCV.h, SW2DCV.py and cSW2DCP.pyx. Mainly to change regularization and improve robustness

* ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame

* Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"

This reverts commit b6ea6dd4abece7c6d458062253cf6688ebc8bc94.

* Debugging IB particle forces.

* stabilization stuff

* 3D Mesh Reconstruction (#589)

Add 3D capability for SCOREC mesh-reconstruction from Proteus mesh data structures.

* ENH: Added serial 3D mesh reconstruction capability. Littered with debug statements

* MAINT: Removed debug statements and added doc strings for some conditionals. Parallel seems to work so long as partitioning is set correctly

* FIX: prevent boundary elements from collapsing by classifying exterior edge entities as model edges

* FIX: resolve assert if multiregion domain and add logic to inherit node materials from boundary materials in 3D

* fixed typo Dit->Dict (#578)

* FIX: only have owning edges send model info

* Revert "Revert "ENH: Expose anisotropic interface with simple hardcoded size_scale and size_frame"" (#588)

This turns on the hard-coded `size_scale` and `size_frame` fields for the `anisotropicProteus` option.
This reverts commit 31f5dfafd59d7d497637b416afada1c5869b2c18.

* Added python script that creates symbolic links needed for proteus build

* Change the place where the low order dissipative matrix is computed

* Add function in c++ to compute the LO dissipative matrix, the edge_based_cfl and others (smoothness indicator and EV residual)

* Compute desired dt to fulfill positivity constraints from within choose_dt in RKEV

* Remove some computations on function that computes the edge_based_cfl

* Change again place where dLow is being computed

* Avoid computing dLow twice if we are in the first stage of the SSP method

* Add minor bug in SW2DCV.py

* Fixes the issue for running the ib cases in parallel, for 2D and 3D

* Archive quantDOFs (if the model has it)

* Adjust dt before calculateResidual based on 2nd order solution

* Change flags in solvers for SWEs to turn off part of the code in the 2nd call of calculateResidual

* This…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant