From d539384b67f972ab889deb55d55c38cefe776dba Mon Sep 17 00:00:00 2001 From: David Seus <david.seus@ians.uni-stuttgart.de> Date: Fri, 3 Jan 2020 18:12:01 +0100 Subject: [PATCH] change simulation parameters for TPTP one patch and two-patch. aswell as TPR --- LDDsimulation/domainPatch.py | 4 +-- LDDsimulation/helpers.py | 16 +++++------ .../TP-R-2-patch-pure-dd-realistic.py | 28 +++++++++---------- .../TP-one-patch-purely-postive-pc.py | 12 ++++---- .../mesh_studies/TP-TP-2-patch-mesh-study.py | 24 ++++++++-------- 5 files changed, 42 insertions(+), 42 deletions(-) diff --git a/LDDsimulation/domainPatch.py b/LDDsimulation/domainPatch.py index 8bb52d4..099fc74 100644 --- a/LDDsimulation/domainPatch.py +++ b/LDDsimulation/domainPatch.py @@ -176,7 +176,7 @@ class DomainPatch(df.SubDomain): self.has_phases = ['wetting'] else: self.has_phases = ['wetting', 'nonwetting'] #['nonwetting', 'wetting'] - + if self.has_interface is not None: if self.isRichards: self.has_interface_with_Richards_neighbour = None @@ -491,7 +491,7 @@ class DomainPatch(df.SubDomain): flux = -1/mu_a*ka(S(pc_prev))*df.grad(pa_prev) else: # phase == 'nonwetting' - if self.isRichards and interface_has_TP_neighbour and phase is "nonwetting": + if self.isRichards and interface_has_TP_neighbour: # and phase is "nonwetting" if self.include_gravity: flux = -1/mu_a*ka(1-S(pc_prev))*df.grad(-z_a) else: diff --git a/LDDsimulation/helpers.py b/LDDsimulation/helpers.py index 5cf02e8..c73f81b 100644 --- a/LDDsimulation/helpers.py +++ b/LDDsimulation/helpers.py @@ -111,23 +111,23 @@ def generate_exact_solution_expressions( if phase == "nonwetting": # x part of div(flux) for nonwetting - dxdxflux = -1/mu*dka(1-S)*dS*dxpc*dxpa + 1/mu*dxdxpa*ka(1-S) + div_flux_x = -1*(-1/mu*dka(1-S)*dS*dxpc*dxpa + 1/mu*dxdxpa*ka(1-S)) # y part of div(flux) for nonwetting if include_gravity: - dydyflux = -1/mu*dka(1-S)*dS*dypc*(dypa + rho*g) + 1/mu*dydypa*ka(1-S) + div_flux_y = -1*(-1/mu*dka(1-S)*dS*dypc*(dypa + rho*g) + 1/mu*dydypa*ka(1-S)) else: - dydyflux = -1/mu*dka(1-S)*dS*dypc*dypa + 1/mu*dydypa*ka(1-S) + div_flux_y = -1*(-1/mu*dka(1-S)*dS*dypc*dypa + 1/mu*dydypa*ka(1-S)) else: # x part of div(flux) for wetting - dxdxflux = 1/mu*dka(S)*dS*dxpc*dxpa + 1/mu*dxdxpa*ka(S) + div_flux_x = -1*(1/mu*dka(S)*dS*dxpc*dxpa + 1/mu*dxdxpa*ka(S)) # y part of div(flux) for wetting if include_gravity: - dydyflux = 1/mu*dka(S)*dS*dypc*(dypa + rho*g) + 1/mu*dydypa*ka(S) + div_flux_y = -1*(1/mu*dka(S)*dS*dypc*(dypa + rho*g) + 1/mu*dydypa*ka(S)) else: - dydyflux = 1/mu*dka(S)*dS*dypc*(dypa) + 1/mu*dydypa*ka(S) + div_flux_y = -1*(1/mu*dka(S)*dS*dypc*(dypa) + 1/mu*dydypa*ka(S)) - div_flux[subdomain].update({phase: dxdxflux + dydyflux}) - contructed_rhs = dtS[subdomain][phase] - div_flux[subdomain][phase] + div_flux[subdomain].update({phase: div_flux_x + div_flux_y}) + contructed_rhs = dtS[subdomain][phase] + div_flux[subdomain][phase] output['source'][subdomain].update( {phase: sym.printing.ccode(contructed_rhs)} ) diff --git a/Two-phase-Richards/two-patch/TP-R-two-patch-test-case/TP-R-2-patch-pure-dd-realistic.py b/Two-phase-Richards/two-patch/TP-R-two-patch-test-case/TP-R-2-patch-pure-dd-realistic.py index 13d24f6..511a99b 100755 --- a/Two-phase-Richards/two-patch/TP-R-two-patch-test-case/TP-R-2-patch-pure-dd-realistic.py +++ b/Two-phase-Richards/two-patch/TP-R-two-patch-test-case/TP-R-2-patch-pure-dd-realistic.py @@ -19,7 +19,7 @@ datestr = date.strftime("%Y-%m-%d") # init sympy session sym.init_printing() -use_case = "TP-R-2-patch-realistic-pure-dd-new-gravity-rhs" +use_case = "TP-R-2-patch-realistic-pure-dd" # solver_tol = 6E-7 max_iter_num = 1000 FEM_Lagrange_degree = 1 @@ -30,26 +30,26 @@ resolutions = { # 4: 7e-7, # 8: 7e-7, # 16: 7e-7, - 32: 5e-6, + 32: 1e-6, # 64: 7e-7, # 128: 7e-7, # 256: 7e-7 } ############ GRID ####################### -timestep_size = 0.001 -number_of_timesteps = 15 +timestep_size = 0.00001 +number_of_timesteps = 20 plot_timestep_every = 1 # decide how many timesteps you want analysed. Analysed means, that we write out # subsequent errors of the L-iteration within the timestep. -number_of_timesteps_to_analyse = 5 +number_of_timesteps_to_analyse = 4 starttimes = [0.0] -Lw = 0.04 #/timestep_size -Lnw= 0.8 +Lw = 0.5 #/timestep_size +Lnw= 0.5 -lambda_w = 2 -lambda_nw = 8 +lambda_w = 1 +lambda_nw = 1 include_gravity = True debugflag = True @@ -72,7 +72,7 @@ else: write_to_file = { 'space_errornorms': True, 'meshes_and_markers': True, - 'L_iterations_per_timestep': False, + 'L_iterations_per_timestep': True, 'solutions': True, 'absolute_differences': True, 'condition_numbers': analyse_condition, @@ -190,10 +190,10 @@ lambda_param = {# } intrinsic_permeability = { - 1: {"wetting": 10e-6, - "nonwetting": 10e-6}, - 2: {"wetting": 10e-6, - "nonwetting": 10e-6}, + 1: {"wetting": 1, + "nonwetting": 1}, + 2: {"wetting": 1, + "nonwetting": 1}, } ## relative permeabilty functions on subdomain 1 diff --git a/Two-phase-Two-phase/one-patch/TP-one-patch/TP-one-patch-purely-postive-pc.py b/Two-phase-Two-phase/one-patch/TP-one-patch/TP-one-patch-purely-postive-pc.py index 330fd63..d0c3515 100755 --- a/Two-phase-Two-phase/one-patch/TP-one-patch/TP-one-patch-purely-postive-pc.py +++ b/Two-phase-Two-phase/one-patch/TP-one-patch/TP-one-patch-purely-postive-pc.py @@ -39,21 +39,21 @@ resolutions = { ############ GRID ####################### # mesh_resolution = 20 -timestep_size = 0.0005 -number_of_timesteps = 2500 +timestep_size = 0.001 +number_of_timesteps = 25 plot_timestep_every = 1 # decide how many timesteps you want analysed. Analysed means, that we write out # subsequent errors of the L-iteration within the timestep. number_of_timesteps_to_analyse = 0 starttime = 0.0 -Lw = 0.25 #/timestep_size +Lw = 0.025 #/timestep_size Lnw=Lw -lambda_w = 40 -lambda_nw = 40 +lambda_w = 4 +lambda_nw = 4 -include_gravity = False +include_gravity = True debugflag = True analyse_condition = False diff --git a/Two-phase-Two-phase/two-patch/mesh_studies/TP-TP-2-patch-mesh-study.py b/Two-phase-Two-phase/two-patch/mesh_studies/TP-TP-2-patch-mesh-study.py index cd8e079..bd6ee93 100755 --- a/Two-phase-Two-phase/two-patch/mesh_studies/TP-TP-2-patch-mesh-study.py +++ b/Two-phase-Two-phase/two-patch/mesh_studies/TP-TP-2-patch-mesh-study.py @@ -23,23 +23,23 @@ use_case = "TP-TP-2-patch-realistic" # solver_tol = 6E-7 max_iter_num = 300 FEM_Lagrange_degree = 1 -mesh_study = True +mesh_study = False resolutions = { - 1: 1e-6, - 2: 1e-6, - 4: 1e-6, - 8: 1e-6, - 16: 1e-6, + # 1: 1e-6, + # 2: 1e-6, + # 4: 1e-6, + # 8: 1e-6, + # 16: 1e-6, 32: 1e-6, - 64: 1e-6, - 128: 1e-6, - 256: 1e-6, + # 64: 1e-6, + # 128: 1e-6, + # 256: 1e-6, } ############ GRID ####################### # mesh_resolution = 20 timestep_size = 0.001 -number_of_timesteps = 800 +number_of_timesteps = 20 plot_timestep_every = 2 # decide how many timesteps you want analysed. Analysed means, that we write out # subsequent errors of the L-iteration within the timestep. @@ -52,8 +52,8 @@ Lnw=Lw lambda_w = 4 lambda_nw = 4 -include_gravity = False -debugflag = False +include_gravity = True +debugflag = True analyse_condition = True if mesh_study: -- GitLab