diff --git a/.travis.yml b/.travis.yml index e212a969..7f421a72 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,7 +38,7 @@ install: - sudo apt-get install gfortran pv - git lfs fetch - git lfs checkout -- git clone https://github.com/erdc-cm/proteus +- git clone https://github.com/erdc/proteus - cd proteus - make hashdist - make stack diff --git a/2d/benchmarks/dambreak_Colagrossi/dambreak_Colagrossi.py b/2d/benchmarks/dambreak_Colagrossi/dambreak_Colagrossi.py index 925153e5..c64ca46c 100644 --- a/2d/benchmarks/dambreak_Colagrossi/dambreak_Colagrossi.py +++ b/2d/benchmarks/dambreak_Colagrossi/dambreak_Colagrossi.py @@ -12,9 +12,9 @@ from proteus.Profiling import logEvent from proteus.mprans.SpatialTools import Tank2D - # predefined options opts=Context.Options([ + ("adaptMesh", False, "Enable dynamic mesh adaption"), # water column ("water_level", 0.6, "Height of water column in m"), ("water_width", 1.2, "Width of water column in m"), @@ -161,7 +161,7 @@ # ----- GAUGES ----- # -if opts.gauge_output: +if opts.gauge_output and not opts.adaptMesh: tank.attachPointGauges( 'twp', gauges = ((('p',), (opts.gauge_location_p,)),), @@ -180,10 +180,30 @@ # ----- MESH CONSTRUCTION ----- # + + he = tank_dim[0] / float(4 * refinement - 1) -domain.MeshOptions.he = he +from proteus.MeshAdaptPUMI import MeshAdaptPUMI +hmin = he +hmax = 10.0*he +adaptMesh = opts.adaptMesh +adaptMesh_nSteps = 5 +adaptMesh_numIter = 2 +MeshAdaptMesh=MeshAdaptPUMI.MeshAdaptPUMI(hmax=hmax, hmin=hmin, numIter=adaptMesh_numIter,sfConfig="isotropic",maType="isotropic") +useModel=False + +if opts.adaptMesh: + domain.MeshOptions.he = hmax + domain.MeshOptions.parallelPartitioningType = mt.MeshParallelPartitioningTypes.element + domain.MeshOptions.nLayersOfOverlapForParallel = 0 +else: + domain.MeshOptions.he = he + domain.MeshOptions.parallelPartitioningType = mt.MeshParallelPartitioningTypes.node + domain.MeshOptions.nLayersOfOverlapForParallel = 0 + st.assembleDomain(domain) + # ----- STRONG DIRICHLET ----- # ns_forceStrongDirichlet = False @@ -197,28 +217,28 @@ ls_shockCapturingFactor = 0.25 ls_lag_shockCapturing = True ls_sc_uref = 1.0 - ls_sc_beta = 1.0 + ls_sc_beta = 1.5 vof_shockCapturingFactor = 0.25 vof_lag_shockCapturing = True vof_sc_uref = 1.0 - vof_sc_beta = 1.0 + vof_sc_beta = 1.5 rd_shockCapturingFactor = 0.25 rd_lag_shockCapturing = False epsFact_density = epsFact_viscosity = epsFact_curvature \ = epsFact_vof = ecH \ = epsFact_consrv_dirac = epsFact_density \ - = 3.0 + = 1.5 epsFact_redistance = 0.33 - epsFact_consrv_diffusion = 0.1 + epsFact_consrv_diffusion = 10.0 redist_Newton = True kappa_shockCapturingFactor = 0.25 kappa_lag_shockCapturing = True #False kappa_sc_uref = 1.0 - kappa_sc_beta = 1.0 + kappa_sc_beta = 1.5 dissipation_shockCapturingFactor = 0.25 dissipation_lag_shockCapturing = True #False dissipation_sc_uref = 1.0 - dissipation_sc_beta = 1.0 + dissipation_sc_beta = 1.5 else: ns_shockCapturingFactor = 0.9 ns_lag_shockCapturing = True diff --git a/2d/benchmarks/dambreak_Colagrossi/dambreak_Colagrossi_so.py b/2d/benchmarks/dambreak_Colagrossi/dambreak_Colagrossi_so.py index fc85200f..ff4c6713 100644 --- a/2d/benchmarks/dambreak_Colagrossi/dambreak_Colagrossi_so.py +++ b/2d/benchmarks/dambreak_Colagrossi/dambreak_Colagrossi_so.py @@ -51,5 +51,5 @@ needEBQ_GLOBAL = False needEBQ = False - +#archiveFlag = ArchiveFlags.EVERY_SEQUENCE_STEP tnList=[0.0,ct.dt_init]+[ct.dt_init+ i*ct.dt_fixed for i in range(1,ct.nDTout+1)] diff --git a/2d/benchmarks/dambreak_Colagrossi/ls_consrv_p.py b/2d/benchmarks/dambreak_Colagrossi/ls_consrv_p.py index fc938a2e..5f9a8a9d 100644 --- a/2d/benchmarks/dambreak_Colagrossi/ls_consrv_p.py +++ b/2d/benchmarks/dambreak_Colagrossi/ls_consrv_p.py @@ -20,7 +20,7 @@ VOFModel_index=int(ct.movingDomain)+1, applyCorrection=ct.applyCorrection, nd=nd, - checkMass=True, + checkMass=ct.checkMass, useMetrics=ct.useMetrics, epsFactHeaviside=ct.ecH, epsFactDirac=ct.epsFact_consrv_dirac, diff --git a/2d/benchmarks/dambreak_Colagrossi/twp_navier_stokes_n.py b/2d/benchmarks/dambreak_Colagrossi/twp_navier_stokes_n.py index 0a0a67d2..05ea8c63 100644 --- a/2d/benchmarks/dambreak_Colagrossi/twp_navier_stokes_n.py +++ b/2d/benchmarks/dambreak_Colagrossi/twp_navier_stokes_n.py @@ -12,7 +12,11 @@ domain = ct.domain nd = ct.domain.nd mesh = domain.MeshOptions - +adaptMesh = ct.adaptMesh +adaptMesh_nSteps = ct.adaptMesh_nSteps +adaptMesh_numIter = ct.adaptMesh_numIter +MeshAdaptMesh=ct.MeshAdaptMesh +useModel=ct.useModel if ct.useHex or ct.structured: nnx = ct.nnx nny = ct.nny @@ -99,6 +103,9 @@ if ct.useHex: conservativeFlux = None else: - conservativeFlux = {0: 'pwl-bdm-opt'} + if ct.adaptMesh: + conservativeFlux = None + else: + conservativeFlux = {0: 'pwl-bdm-opt'} auxiliaryVariables = ct.domain.auxiliaryVariables['twp'] diff --git a/2d/benchmarks/dambreak_Colagrossi/twp_navier_stokes_p.py b/2d/benchmarks/dambreak_Colagrossi/twp_navier_stokes_p.py index 0e666617..71acf413 100644 --- a/2d/benchmarks/dambreak_Colagrossi/twp_navier_stokes_p.py +++ b/2d/benchmarks/dambreak_Colagrossi/twp_navier_stokes_p.py @@ -4,6 +4,11 @@ from proteus import Context ct = Context.get() +rho_0 = ct.rho_0 +rho_1 = ct.rho_1 +nu_0 = ct.nu_0 +nu_1 = ct.nu_1 +g = ct.g domain = ct.domain nd = domain.nd mesh = domain.MeshOptions diff --git a/2d/numericalTanks/randomWaves/README.rst b/2d/numericalTanks/randomWaves/README.rst index 26b925ca..07af5b3e 100644 --- a/2d/numericalTanks/randomWaves/README.rst +++ b/2d/numericalTanks/randomWaves/README.rst @@ -12,7 +12,7 @@ Random waves typically consist of non-repeatable wave sequences, so each individ Random wave sequences are generated by descritising the spectral distribution into frequency components and composing free-surface and velocity field by superimposing the free-surface elevation and velocity of each individual component. The amplitude of these components is calculated by the spectral distribution. The phasing of each component is either randomly allocated to generate a truly random series or pre-defined in order to generate focused waves. More information on random waves can be found in Goda (2009) and Dean and Dalrymple (1991). -In this case, the numerical flume described in https://github.com/erdc-cm/air-water-vv/tree/adimako/merge/2d/numericalTanks/linearWaves is used to demonstrate the capability of Proteus for generating random waves. +In this case, the numerical flume described in https://github.com/erdc/air-water-vv/tree/adimako/merge/2d/numericalTanks/linearWaves is used to demonstrate the capability of Proteus for generating random waves. Tests ----- diff --git a/2d/numericalTanks/randomWavesFast/README.rst b/2d/numericalTanks/randomWavesFast/README.rst index edb21ea6..5c67cb68 100644 --- a/2d/numericalTanks/randomWavesFast/README.rst +++ b/2d/numericalTanks/randomWavesFast/README.rst @@ -3,7 +3,7 @@ Fast Random wave generation Description ---------- -The test case setup is described in https://github.com/erdc-cm/air-water-vv/tree/adimako/merge/2d/numericalTanks/randomWaves. +The test case setup is described in https://github.com/erdc/air-water-vv/tree/adimako/merge/2d/numericalTanks/randomWaves. In this particular case, the generation methodology is optimised to allow fast generation of long non repeating random waves sequences using processing with spectral windows. More details on the methodology can be found in Dimakopoulos et al. (2017). Tests (to be added) diff --git a/2d/numericalTanks/standingWaves/README.rst b/2d/numericalTanks/standingWaves/README.rst index 7bb751ff..03fd0dc4 100644 --- a/2d/numericalTanks/standingWaves/README.rst +++ b/2d/numericalTanks/standingWaves/README.rst @@ -6,7 +6,7 @@ Description Standing waves are formed when regular waves interact with a fully reflective wall. In this case, a distinctive patterns emerges and the wave amplitude becomes a sinusioidal function in space. The reflected waves are fully synconised with the incident ones at an even number of half wavelenghts from the wall, whilst cancelling each other at an odd number of wavelength, this creating the distinctive wave patterns of nodes and antinodes, where the amplitude is double and zero, respectively. -In this case, the numerical flume described in https://github.com/erdc-cm/air-water-vv/tree/adimako/merge/2d/numericalTanks/linearWaves is used to demonstrate the capability of Proteus of modelling standing wave patterns and in particular of absorbing the reflected waves at the generation / absorption zone. +In this case, the numerical flume described in https://github.com/erdc/air-water-vv/tree/adimako/merge/2d/numericalTanks/linearWaves is used to demonstrate the capability of Proteus of modelling standing wave patterns and in particular of absorbing the reflected waves at the generation / absorption zone. Tests ----- diff --git a/README.rst b/README.rst index b9dde03b..8c0421ac 100644 --- a/README.rst +++ b/README.rst @@ -2,7 +2,7 @@ Verification and validation for air/water flow models ===================================================== -https://github.com/erdc-cm/air-water-vv +https://github.com/erdc/air-water-vv Organization of the test set ---------------------------- @@ -16,7 +16,7 @@ test consists of a single directory including - All data files describing the geometry and physical parameters of the problem - A set of input files for a code - (e.g. https://github.com/erdc-cm/proteus) + (e.g. https://github.com/erdc/proteus) - A script for results postprocessing (Optional) - A script for running regression tests diff --git a/private/proteus-mprans.yaml b/private/proteus-mprans.yaml index 8e1a4d58..f7cea748 100644 --- a/private/proteus-mprans.yaml +++ b/private/proteus-mprans.yaml @@ -4,7 +4,7 @@ dependencies: run: [proteus, numpy] sources: - - url: https://github.com/erdc-cm/proteus-mprans + - url: https://github.com/erdc/proteus-mprans key: git:fc5a90c2a50bb9716460876ad1ee91da598ff8f3 profile_links: