diff --git a/partitioned-heat-conduction/fenics/clean.sh b/partitioned-heat-conduction/dirichlet-fenics/clean.sh similarity index 100% rename from partitioned-heat-conduction/fenics/clean.sh rename to partitioned-heat-conduction/dirichlet-fenics/clean.sh diff --git a/partitioned-heat-conduction/fenics/precice-adapter-config-D.json b/partitioned-heat-conduction/dirichlet-fenics/precice-adapter-config.json similarity index 100% rename from partitioned-heat-conduction/fenics/precice-adapter-config-D.json rename to partitioned-heat-conduction/dirichlet-fenics/precice-adapter-config.json diff --git a/partitioned-heat-conduction/dirichlet-fenics/run.sh b/partitioned-heat-conduction/dirichlet-fenics/run.sh new file mode 100755 index 000000000..3fd32e580 --- /dev/null +++ b/partitioned-heat-conduction/dirichlet-fenics/run.sh @@ -0,0 +1,4 @@ +#!/bin/sh +set -e -u + +python3 ../solver-fenics/heat.py Dirichlet \ No newline at end of file diff --git a/partitioned-heat-conduction/openfoam-dirichlet/0.orig/T b/partitioned-heat-conduction/dirichlet-openfoam/0.orig/T similarity index 100% rename from partitioned-heat-conduction/openfoam-dirichlet/0.orig/T rename to partitioned-heat-conduction/dirichlet-openfoam/0.orig/T diff --git a/partitioned-heat-conduction/openfoam-dirichlet/clean.sh b/partitioned-heat-conduction/dirichlet-openfoam/clean.sh similarity index 100% rename from partitioned-heat-conduction/openfoam-dirichlet/clean.sh rename to partitioned-heat-conduction/dirichlet-openfoam/clean.sh diff --git a/partitioned-heat-conduction/openfoam-dirichlet/constant/transportProperties b/partitioned-heat-conduction/dirichlet-openfoam/constant/transportProperties similarity index 100% rename from partitioned-heat-conduction/openfoam-dirichlet/constant/transportProperties rename to partitioned-heat-conduction/dirichlet-openfoam/constant/transportProperties diff --git a/partitioned-heat-conduction/openfoam-dirichlet/run.sh b/partitioned-heat-conduction/dirichlet-openfoam/run.sh similarity index 100% rename from partitioned-heat-conduction/openfoam-dirichlet/run.sh rename to partitioned-heat-conduction/dirichlet-openfoam/run.sh diff --git a/partitioned-heat-conduction/openfoam-dirichlet/setInitialField.sh b/partitioned-heat-conduction/dirichlet-openfoam/setInitialField.sh similarity index 100% rename from partitioned-heat-conduction/openfoam-dirichlet/setInitialField.sh rename to partitioned-heat-conduction/dirichlet-openfoam/setInitialField.sh diff --git a/partitioned-heat-conduction/openfoam-dirichlet/system/blockMeshDict b/partitioned-heat-conduction/dirichlet-openfoam/system/blockMeshDict similarity index 100% rename from partitioned-heat-conduction/openfoam-dirichlet/system/blockMeshDict rename to partitioned-heat-conduction/dirichlet-openfoam/system/blockMeshDict diff --git a/partitioned-heat-conduction/openfoam-dirichlet/system/controlDict b/partitioned-heat-conduction/dirichlet-openfoam/system/controlDict similarity index 100% rename from partitioned-heat-conduction/openfoam-dirichlet/system/controlDict rename to partitioned-heat-conduction/dirichlet-openfoam/system/controlDict diff --git a/partitioned-heat-conduction/openfoam-dirichlet/system/decomposeParDict b/partitioned-heat-conduction/dirichlet-openfoam/system/decomposeParDict similarity index 100% rename from partitioned-heat-conduction/openfoam-dirichlet/system/decomposeParDict rename to partitioned-heat-conduction/dirichlet-openfoam/system/decomposeParDict diff --git a/partitioned-heat-conduction/openfoam-dirichlet/system/fvSchemes b/partitioned-heat-conduction/dirichlet-openfoam/system/fvSchemes similarity index 100% rename from partitioned-heat-conduction/openfoam-dirichlet/system/fvSchemes rename to partitioned-heat-conduction/dirichlet-openfoam/system/fvSchemes diff --git a/partitioned-heat-conduction/openfoam-dirichlet/system/fvSolution b/partitioned-heat-conduction/dirichlet-openfoam/system/fvSolution similarity index 100% rename from partitioned-heat-conduction/openfoam-dirichlet/system/fvSolution rename to partitioned-heat-conduction/dirichlet-openfoam/system/fvSolution diff --git a/partitioned-heat-conduction/openfoam-dirichlet/system/preciceDict b/partitioned-heat-conduction/dirichlet-openfoam/system/preciceDict similarity index 100% rename from partitioned-heat-conduction/openfoam-dirichlet/system/preciceDict rename to partitioned-heat-conduction/dirichlet-openfoam/system/preciceDict diff --git a/partitioned-heat-conduction/fenics/.gitignore b/partitioned-heat-conduction/fenics/.gitignore deleted file mode 100644 index 7c6571e48..000000000 --- a/partitioned-heat-conduction/fenics/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -venv -*.pyc diff --git a/partitioned-heat-conduction/fenics/run.sh b/partitioned-heat-conduction/fenics/run.sh deleted file mode 100755 index cf9534cf2..000000000 --- a/partitioned-heat-conduction/fenics/run.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -set -e -u - -usage() { echo "Usage: cmd [-d] [-n]" 1>&2; exit 1; } - -# Check if no input argument was provided -if [ -z "$*" ] ; then - usage -fi - -# Select appropriate case -while getopts ":dn" opt; do - case ${opt} in - d) - python3 heat.py -d - ;; - n) - python3 heat.py -n - ;; - *) - usage - ;; - esac -done diff --git a/partitioned-heat-conduction/neumann-fenics/clean.sh b/partitioned-heat-conduction/neumann-fenics/clean.sh new file mode 100755 index 000000000..3a8b4619d --- /dev/null +++ b/partitioned-heat-conduction/neumann-fenics/clean.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -e -u + +. ../../tools/cleaning-tools.sh + +clean_fenics . diff --git a/partitioned-heat-conduction/fenics/precice-adapter-config-N.json b/partitioned-heat-conduction/neumann-fenics/precice-adapter-config.json similarity index 100% rename from partitioned-heat-conduction/fenics/precice-adapter-config-N.json rename to partitioned-heat-conduction/neumann-fenics/precice-adapter-config.json diff --git a/partitioned-heat-conduction/neumann-fenics/run.sh b/partitioned-heat-conduction/neumann-fenics/run.sh new file mode 100755 index 000000000..7c3fba9c1 --- /dev/null +++ b/partitioned-heat-conduction/neumann-fenics/run.sh @@ -0,0 +1,4 @@ +#!/bin/sh +set -e -u + +python3 ../solver-fenics/heat.py Neumann \ No newline at end of file diff --git a/partitioned-heat-conduction/openfoam-neumann/0.orig/T b/partitioned-heat-conduction/neumann-openfoam/0.orig/T similarity index 100% rename from partitioned-heat-conduction/openfoam-neumann/0.orig/T rename to partitioned-heat-conduction/neumann-openfoam/0.orig/T diff --git a/partitioned-heat-conduction/openfoam-neumann/clean.sh b/partitioned-heat-conduction/neumann-openfoam/clean.sh similarity index 100% rename from partitioned-heat-conduction/openfoam-neumann/clean.sh rename to partitioned-heat-conduction/neumann-openfoam/clean.sh diff --git a/partitioned-heat-conduction/openfoam-neumann/constant/transportProperties b/partitioned-heat-conduction/neumann-openfoam/constant/transportProperties similarity index 100% rename from partitioned-heat-conduction/openfoam-neumann/constant/transportProperties rename to partitioned-heat-conduction/neumann-openfoam/constant/transportProperties diff --git a/partitioned-heat-conduction/openfoam-neumann/run.sh b/partitioned-heat-conduction/neumann-openfoam/run.sh similarity index 100% rename from partitioned-heat-conduction/openfoam-neumann/run.sh rename to partitioned-heat-conduction/neumann-openfoam/run.sh diff --git a/partitioned-heat-conduction/openfoam-neumann/setInitialField.sh b/partitioned-heat-conduction/neumann-openfoam/setInitialField.sh similarity index 100% rename from partitioned-heat-conduction/openfoam-neumann/setInitialField.sh rename to partitioned-heat-conduction/neumann-openfoam/setInitialField.sh diff --git a/partitioned-heat-conduction/openfoam-neumann/system/blockMeshDict b/partitioned-heat-conduction/neumann-openfoam/system/blockMeshDict similarity index 100% rename from partitioned-heat-conduction/openfoam-neumann/system/blockMeshDict rename to partitioned-heat-conduction/neumann-openfoam/system/blockMeshDict diff --git a/partitioned-heat-conduction/openfoam-neumann/system/controlDict b/partitioned-heat-conduction/neumann-openfoam/system/controlDict similarity index 100% rename from partitioned-heat-conduction/openfoam-neumann/system/controlDict rename to partitioned-heat-conduction/neumann-openfoam/system/controlDict diff --git a/partitioned-heat-conduction/openfoam-neumann/system/fvSchemes b/partitioned-heat-conduction/neumann-openfoam/system/fvSchemes similarity index 100% rename from partitioned-heat-conduction/openfoam-neumann/system/fvSchemes rename to partitioned-heat-conduction/neumann-openfoam/system/fvSchemes diff --git a/partitioned-heat-conduction/openfoam-neumann/system/fvSolution b/partitioned-heat-conduction/neumann-openfoam/system/fvSolution similarity index 100% rename from partitioned-heat-conduction/openfoam-neumann/system/fvSolution rename to partitioned-heat-conduction/neumann-openfoam/system/fvSolution diff --git a/partitioned-heat-conduction/openfoam-neumann/system/preciceDict b/partitioned-heat-conduction/neumann-openfoam/system/preciceDict similarity index 100% rename from partitioned-heat-conduction/openfoam-neumann/system/preciceDict rename to partitioned-heat-conduction/neumann-openfoam/system/preciceDict diff --git a/partitioned-heat-conduction/openfoam-solver/Make/files b/partitioned-heat-conduction/openfoam-solver/Make/files deleted file mode 100644 index 5721e3a21..000000000 --- a/partitioned-heat-conduction/openfoam-solver/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -heatTransfer.C - -EXE = $(FOAM_USER_APPBIN)/heatTransfer diff --git a/partitioned-heat-conduction/openfoam-solver/Make/options b/partitioned-heat-conduction/openfoam-solver/Make/options deleted file mode 100644 index 04ef6c148..000000000 --- a/partitioned-heat-conduction/openfoam-solver/Make/options +++ /dev/null @@ -1,8 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude - -EXE_LIBS = \ - -lfiniteVolume \ - -lfvOptions \ - -lmeshTools diff --git a/partitioned-heat-conduction/fenics/errorcomputation.py b/partitioned-heat-conduction/solver-fenics/errorcomputation.py similarity index 100% rename from partitioned-heat-conduction/fenics/errorcomputation.py rename to partitioned-heat-conduction/solver-fenics/errorcomputation.py diff --git a/partitioned-heat-conduction/fenics/heat.py b/partitioned-heat-conduction/solver-fenics/heat.py similarity index 93% rename from partitioned-heat-conduction/fenics/heat.py rename to partitioned-heat-conduction/solver-fenics/heat.py index 740dac140..78ee6af15 100644 --- a/partitioned-heat-conduction/fenics/heat.py +++ b/partitioned-heat-conduction/solver-fenics/heat.py @@ -53,13 +53,11 @@ def determine_gradient(V_g, u, flux): parser = argparse.ArgumentParser(description="Solving heat equation for simple or complex interface case") -command_group = parser.add_mutually_exclusive_group(required=True) -command_group.add_argument("-d", "--dirichlet", help="create a dirichlet problem", dest="dirichlet", - action="store_true") -command_group.add_argument("-n", "--neumann", help="create a neumann problem", dest="neumann", action="store_true") +parser.add_argument("participantName", help="Name of the solver.", type=str, choices=[p.value for p in ProblemType]) parser.add_argument("-e", "--error-tol", help="set error tolerance", type=float, default=10**-8,) args = parser.parse_args() +participant_name = args.participantName fenics_dt = .01 # time step size # Error is bounded by coupling accuracy. In theory we would obtain the analytical solution. @@ -68,10 +66,10 @@ def determine_gradient(V_g, u, flux): alpha = 3 # parameter alpha beta = 1.2 # parameter beta -if args.dirichlet and not args.neumann: +if participant_name == ProblemType.DIRICHLET.value: problem = ProblemType.DIRICHLET domain_part = DomainPart.LEFT -elif args.neumann and not args.dirichlet: +elif participant_name == ProblemType.NEUMANN.value: problem = ProblemType.NEUMANN domain_part = DomainPart.RIGHT @@ -101,15 +99,14 @@ def determine_gradient(V_g, u, flux): precice, precice_dt, initial_data = None, 0.0, None # Initialize the adapter according to the specific participant +precice = Adapter(adapter_config_filename="precice-adapter-config.json") + if problem is ProblemType.DIRICHLET: - precice = Adapter(adapter_config_filename="precice-adapter-config-D.json") precice.initialize(coupling_boundary, read_function_space=V, write_object=f_N_function) - precice_dt = precice.get_max_time_step_size() elif problem is ProblemType.NEUMANN: - precice = Adapter(adapter_config_filename="precice-adapter-config-N.json") precice.initialize(coupling_boundary, read_function_space=W, write_object=u_D_function) - precice_dt = precice.get_max_time_step_size() +precice_dt = precice.get_max_time_step_size() dt = Constant(0) dt.assign(np.min([fenics_dt, precice_dt])) diff --git a/partitioned-heat-conduction/fenics/heatHigherOrder.py b/partitioned-heat-conduction/solver-fenics/heatHigherOrder.py similarity index 95% rename from partitioned-heat-conduction/fenics/heatHigherOrder.py rename to partitioned-heat-conduction/solver-fenics/heatHigherOrder.py index eadfd5e8c..5311b4d97 100644 --- a/partitioned-heat-conduction/fenics/heatHigherOrder.py +++ b/partitioned-heat-conduction/solver-fenics/heatHigherOrder.py @@ -61,13 +61,11 @@ def determine_gradient(V_g, u, flux): parser = argparse.ArgumentParser(description="Solving heat equation for simple or complex interface case") -command_group = parser.add_mutually_exclusive_group(required=True) -command_group.add_argument("-d", "--dirichlet", help="create a dirichlet problem", dest="dirichlet", - action="store_true") -command_group.add_argument("-n", "--neumann", help="create a neumann problem", dest="neumann", action="store_true") +parser.add_argument("participantName", help="Name of the solver.", type=str, choices=[p.value for p in ProblemType]) parser.add_argument("-e", "--error-tol", help="set error tolerance", type=float, default=10**-8,) args = parser.parse_args() +participant_name = args.participantName fenics_dt = .01 # time step size # Error is bounded by coupling accuracy. In theory we would obtain the analytical solution. @@ -76,10 +74,10 @@ def determine_gradient(V_g, u, flux): alpha = 3 # parameter alpha beta = 1.2 # parameter beta -if args.dirichlet and not args.neumann: +if participant_name == ProblemType.DIRICHLET.value: problem = ProblemType.DIRICHLET domain_part = DomainPart.LEFT -elif args.neumann and not args.dirichlet: +elif participant_name == ProblemType.NEUMANN.value: problem = ProblemType.NEUMANN domain_part = DomainPart.RIGHT @@ -121,15 +119,14 @@ def determine_gradient(V_g, u, flux): precice, precice_dt, initial_data = None, 0.0, None # Initialize the adapter according to the specific participant +precice = Adapter(adapter_config_filename="precice-adapter-config.json") + if problem is ProblemType.DIRICHLET: - precice = Adapter(adapter_config_filename="precice-adapter-config-D.json") precice.initialize(coupling_boundary, read_function_space=V, write_object=f_N_function) - precice_dt = precice.get_max_time_step_size() elif problem is ProblemType.NEUMANN: - precice = Adapter(adapter_config_filename="precice-adapter-config-N.json") precice.initialize(coupling_boundary, read_function_space=W, write_object=u_D_function) - precice_dt = precice.get_max_time_step_size() +precice_dt = precice.get_max_time_step_size() dt = Constant(0) dt.assign(np.min([fenics_dt, precice_dt])) diff --git a/partitioned-heat-conduction/fenics/my_enums.py b/partitioned-heat-conduction/solver-fenics/my_enums.py similarity index 84% rename from partitioned-heat-conduction/fenics/my_enums.py rename to partitioned-heat-conduction/solver-fenics/my_enums.py index 27fc5d9ae..bd3c841f2 100644 --- a/partitioned-heat-conduction/fenics/my_enums.py +++ b/partitioned-heat-conduction/solver-fenics/my_enums.py @@ -5,8 +5,8 @@ class ProblemType(Enum): """ Enum defines problem type. Details see above. """ - DIRICHLET = 1 # Dirichlet problem - NEUMANN = 2 # Neumann problem + DIRICHLET = "Dirichlet" # Dirichlet problem + NEUMANN = "Neumann" # Neumann problem class DomainPart(Enum): diff --git a/partitioned-heat-conduction/fenics/problem_setup.py b/partitioned-heat-conduction/solver-fenics/problem_setup.py similarity index 100% rename from partitioned-heat-conduction/fenics/problem_setup.py rename to partitioned-heat-conduction/solver-fenics/problem_setup.py diff --git a/partitioned-heat-conduction/fenics/utils/ButcherTableaux.py b/partitioned-heat-conduction/solver-fenics/utils/ButcherTableaux.py similarity index 100% rename from partitioned-heat-conduction/fenics/utils/ButcherTableaux.py rename to partitioned-heat-conduction/solver-fenics/utils/ButcherTableaux.py diff --git a/partitioned-heat-conduction/fenics/utils/__init__.py b/partitioned-heat-conduction/solver-fenics/utils/__init__.py similarity index 100% rename from partitioned-heat-conduction/fenics/utils/__init__.py rename to partitioned-heat-conduction/solver-fenics/utils/__init__.py diff --git a/partitioned-heat-conduction/fenics/utils/utils.py b/partitioned-heat-conduction/solver-fenics/utils/utils.py similarity index 98% rename from partitioned-heat-conduction/fenics/utils/utils.py rename to partitioned-heat-conduction/solver-fenics/utils/utils.py index 03bfd6ee5..477ebf224 100644 --- a/partitioned-heat-conduction/fenics/utils/utils.py +++ b/partitioned-heat-conduction/solver-fenics/utils/utils.py @@ -30,7 +30,7 @@ def b_splines(precice, degree, dt): for node in nodes: val = precice.read_data(node) # check if every key set is equal - assert(key_ref == val.keys()) + assert (key_ref == val.keys()) weights[i] = val i += 1 diff --git a/partitioned-heat-conduction/openfoam-solver/.gitignore b/partitioned-heat-conduction/solver-openfoam/.gitignore similarity index 100% rename from partitioned-heat-conduction/openfoam-solver/.gitignore rename to partitioned-heat-conduction/solver-openfoam/.gitignore diff --git a/partitioned-heat-conduction/openfoam-solver/clean.sh b/partitioned-heat-conduction/solver-openfoam/clean.sh similarity index 100% rename from partitioned-heat-conduction/openfoam-solver/clean.sh rename to partitioned-heat-conduction/solver-openfoam/clean.sh diff --git a/partitioned-heat-conduction/openfoam-solver/createFields.H b/partitioned-heat-conduction/solver-openfoam/createFields.H similarity index 100% rename from partitioned-heat-conduction/openfoam-solver/createFields.H rename to partitioned-heat-conduction/solver-openfoam/createFields.H diff --git a/partitioned-heat-conduction/openfoam-solver/heatTransfer.C b/partitioned-heat-conduction/solver-openfoam/heatTransfer.C similarity index 100% rename from partitioned-heat-conduction/openfoam-solver/heatTransfer.C rename to partitioned-heat-conduction/solver-openfoam/heatTransfer.C diff --git a/partitioned-heat-conduction/openfoam-solver/write.H b/partitioned-heat-conduction/solver-openfoam/write.H similarity index 100% rename from partitioned-heat-conduction/openfoam-solver/write.H rename to partitioned-heat-conduction/solver-openfoam/write.H