diff --git a/Applications/Utils/FileConverter/GocadSGridReader.cpp b/Applications/Utils/FileConverter/GocadSGridReader.cpp
index ba5b3bf282efefbf0453d4aa46b64716e893aca2..6d271fd62c38cd93ccc8f4d226a9d8d90a8420f3 100644
--- a/Applications/Utils/FileConverter/GocadSGridReader.cpp
+++ b/Applications/Utils/FileConverter/GocadSGridReader.cpp
@@ -40,10 +40,8 @@ int main(int argc, char* argv[])
             "(http://www.opengeosys.org)",
         ' ', GitInfoLib::GitInfo::ogs_version);
 
-    TCLAP::ValueArg<bool> face_set_arg(
-        "f", "generate-face-sets",
-        "generate face sets; default false, i.e. do not generate face sets",
-        false, false, "true/false");
+    TCLAP::SwitchArg face_set_arg("f", "generate-face-sets",
+                                  "Generate face sets.");
     cmd.add(face_set_arg);
 
     TCLAP::ValueArg<std::string> mesh_output_arg(
diff --git a/Applications/Utils/FileConverter/OGS2VTK.cpp b/Applications/Utils/FileConverter/OGS2VTK.cpp
index 144b69c4ad2745aeed2672da8249eeb41a25ad4b..1b31b9d361d104f3564593e60e09cda69cf8c83f 100644
--- a/Applications/Utils/FileConverter/OGS2VTK.cpp
+++ b/Applications/Utils/FileConverter/OGS2VTK.cpp
@@ -41,11 +41,10 @@ int main (int argc, char* argv[])
         "the name of the file the mesh will be written to", true, "",
         "file name of output mesh");
     cmd.add(mesh_out);
-    TCLAP::ValueArg<bool> use_ascii_arg(
+    TCLAP::SwitchArg use_ascii_arg(
         "", "ascii_output",
-        "Use ascii format for data in the vtu output. Due to possible rounding "
-        "the ascii output could result in lower accuracy.",
-        false, false, "boolean value");
+        "Write VTU output in ASCII format. Due to possible rounding the ascii "
+        "output could result in lower accuracy.");
     cmd.add(use_ascii_arg);
     cmd.parse(argc, argv);
 
diff --git a/Applications/Utils/MeshEdit/CreateBoundaryConditionsAlongPolylines.cpp b/Applications/Utils/MeshEdit/CreateBoundaryConditionsAlongPolylines.cpp
index 773e8c4b71979cabf1688215870d9e02535ef5b9..14c0c5b8d51b1f280b9469ccf48b1faee7747cd1 100644
--- a/Applications/Utils/MeshEdit/CreateBoundaryConditionsAlongPolylines.cpp
+++ b/Applications/Utils/MeshEdit/CreateBoundaryConditionsAlongPolylines.cpp
@@ -133,8 +133,7 @@ int main (int argc, char* argv[])
             "Copyright (c) 2012-2020, OpenGeoSys Community "
             "(http://www.opengeosys.org)",
         ' ', GitInfoLib::GitInfo::ogs_version);
-    TCLAP::ValueArg<bool> gml_arg("", "gml",
-        "if switched on write found nodes to file in gml format", false, false, "bool");
+    TCLAP::SwitchArg gml_arg("", "gml", "Write found nodes to gml file.");
     cmd.add(gml_arg);
 
     TCLAP::ValueArg<std::string> output_base_fname("o", "output-base-file-name",
diff --git a/Applications/Utils/MeshEdit/MapGeometryToMeshSurface.cpp b/Applications/Utils/MeshEdit/MapGeometryToMeshSurface.cpp
index 855d6fafa10ae9303067e0e35e48b344c5497ee9..be5b9e6ddfa088dfa0c8670f1723f561aa136a01 100644
--- a/Applications/Utils/MeshEdit/MapGeometryToMeshSurface.cpp
+++ b/Applications/Utils/MeshEdit/MapGeometryToMeshSurface.cpp
@@ -42,10 +42,10 @@ int main (int argc, char* argv[])
         "the name of the file containing the input geometry", true,
         "", "file name");
     cmd.add(input_geometry_fname);
-    TCLAP::ValueArg<bool> additional_insert_mapping("a", "additional-insert-mapping",
-        "if true advanced mapping algorithm will be applied, i.e. a new "
-        "geometry will be created and possibly new points will be inserted.", false,
-        true, "boolean value");
+    TCLAP::SwitchArg additional_insert_mapping(
+        "a", "additional-insert-mapping",
+        "Advanced mapping algorithm will be applied, i.e. a new geometry will "
+        "be created and possibly new points will be inserted.");
     cmd.add(additional_insert_mapping);
     TCLAP::ValueArg<std::string> output_geometry_fname("o", "output-geometry",
         "the name of the file containing the input geometry", true,
diff --git a/Applications/Utils/MeshEdit/createLayeredMeshFromRasters.cpp b/Applications/Utils/MeshEdit/createLayeredMeshFromRasters.cpp
index 75ebee15816d8cb9931ac344fcaf375f28d034b8..117780c09d56061e207416c6250a91798ad33ea5 100644
--- a/Applications/Utils/MeshEdit/createLayeredMeshFromRasters.cpp
+++ b/Applications/Utils/MeshEdit/createLayeredMeshFromRasters.cpp
@@ -70,10 +70,8 @@ int main (int argc, char* argv[])
             "(http://www.opengeosys.org)",
         ' ', GitInfoLib::GitInfo::ogs_version);
 
-    TCLAP::ValueArg<bool> use_ascii_arg(
-        "", "ascii_output",
-        "Use ascii format for VTU output.",
-        false, false, "true/false");
+    TCLAP::SwitchArg use_ascii_arg("", "ascii_output",
+                                   "Write VTU output in ASCII format.");
     cmd.add(use_ascii_arg);
 
     double min_thickness(std::numeric_limits<double>::epsilon());
diff --git a/Applications/Utils/MeshGeoTools/constructMeshesFromGeometry.cpp b/Applications/Utils/MeshGeoTools/constructMeshesFromGeometry.cpp
index 2e9d0fc399dabe59fd3de65e5dc45389062c2c6e..1970b3ed03a7573489987d366b89f100c2131a97 100644
--- a/Applications/Utils/MeshGeoTools/constructMeshesFromGeometry.cpp
+++ b/Applications/Utils/MeshGeoTools/constructMeshesFromGeometry.cpp
@@ -69,14 +69,9 @@ int main(int argc, char* argv[])
         "mesh file name");
     cmd.add(mesh_arg);
 
-    TCLAP::ValueArg<bool> multiple_nodes_allowed_arg(
-        "",
-        "multiple-nodes-allowed",
-        "allows that multiple mesh nodes are contained in the eps environment",
-        false, // required argument
-        false, // default value
-        "allows that multiple mesh nodes are contained in the eps environment, "
-        "the nearest node for a point will be returned");
+    TCLAP::SwitchArg multiple_nodes_allowed_arg(
+        "", "multiple-nodes-allowed",
+        "Allows multiple mesh nodes in eps environment.");
     cmd.add(multiple_nodes_allowed_arg);
 
     cmd.parse(argc, argv);
diff --git a/Applications/Utils/MeshGeoTools/identifySubdomains.cpp b/Applications/Utils/MeshGeoTools/identifySubdomains.cpp
index 3f31acc0f6b531dca405e32ca63e98cbe4ea5fa9..91d5bc053ea08664aa1e92669bacf7d95c45a068 100644
--- a/Applications/Utils/MeshGeoTools/identifySubdomains.cpp
+++ b/Applications/Utils/MeshGeoTools/identifySubdomains.cpp
@@ -54,14 +54,8 @@ int main(int argc, char* argv[])
             "(http://www.opengeosys.org)",
         ' ', GitInfoLib::GitInfo::ogs_version);
 
-    TCLAP::ValueArg<bool> force_overwrite_arg(
-        "f",
-        "force",
-        "Overwrites the existing subdomain meshes. (default: 0, do not "
-        "overwrite.)",
-        false,
-        false,
-        "1/0");
+    TCLAP::SwitchArg force_overwrite_arg(
+        "f", "force", "Overwriting existing subdomain meshes.");
     cmd.add(force_overwrite_arg);
 
     TCLAP::ValueArg<std::string> output_prefix_arg(
diff --git a/Applications/Utils/SimpleMeshCreation/createMeshElemPropertiesFromASCRaster.cpp b/Applications/Utils/SimpleMeshCreation/createMeshElemPropertiesFromASCRaster.cpp
index 3a103ca06e6bc1ab406f6d18d34f623391dae6fa..ec913fbad13224da2641b1e6f5c3521c01dad638 100644
--- a/Applications/Utils/SimpleMeshCreation/createMeshElemPropertiesFromASCRaster.cpp
+++ b/Applications/Utils/SimpleMeshCreation/createMeshElemPropertiesFromASCRaster.cpp
@@ -52,13 +52,9 @@ int main(int argc, char* argv[])
         "filename for mesh output");
     cmd.add(out_mesh_arg);
 
-    TCLAP::ValueArg<bool> refinement_raster_output_arg(
-        "",
-        "output-refined-raster",
-        "write refined raster to a new ASC file",
-        false,
-        false,
-        "0");
+    TCLAP::SwitchArg refinement_raster_output_arg(
+        "", "output-refined-raster",
+        "Write refined raster to an additional, new ASC file.");
     cmd.add(refinement_raster_output_arg);
 
     TCLAP::ValueArg<unsigned> refinement_arg(