diff --git a/src/core/fem/src/condition/4C_fem_condition_definition.cpp b/src/core/fem/src/condition/4C_fem_condition_definition.cpp index 1f4accdae78..714debe5fd3 100644 --- a/src/core/fem/src/condition/4C_fem_condition_definition.cpp +++ b/src/core/fem/src/condition/4C_fem_condition_definition.cpp @@ -19,13 +19,12 @@ FOUR_C_NAMESPACE_OPEN -/* -----------------------------------------------------------------------------------------------* - | Class ConditionDefinition | - * -----------------------------------------------------------------------------------------------*/ - +/*----------------------------------------------------------------------* + *----------------------------------------------------------------------*/ Core::Conditions::ConditionDefinition::ConditionDefinition(std::string sectionname, - std::string conditionname, std::string description, Core::Conditions::ConditionType condtype, - bool buildgeometry, Core::Conditions::GeometryType gtype) + std::string conditionname, std::string description, + const Core::Conditions::ConditionType condtype, const bool buildgeometry, + const Core::Conditions::GeometryType gtype) : sectionname_(std::move(sectionname)), conditionname_(std::move(conditionname)), description_(std::move(description)), @@ -67,7 +66,7 @@ void Core::Conditions::ConditionDefinition::add_component(const Core::IO::InputS /*----------------------------------------------------------------------* *----------------------------------------------------------------------*/ void Core::Conditions::ConditionDefinition::read( - Core::IO::InputFile& input, std::vector& condition_specs) const + const Core::IO::InputFile& input, std::vector& condition_specs) const { Core::IO::InputParameterContainer container; try @@ -86,6 +85,13 @@ void Core::Conditions::ConditionDefinition::read( { auto parsed_condition_data = read_condition_data(condition_data); + if (parsed_condition_data.node_set_name.has_value()) + { + FOUR_C_ASSERT_ALWAYS(parsed_condition_data.node_set_name.value().size() <= 32, + "NODE_SET_NAME '{}' exceeds the maximum length of 32 characters.", + parsed_condition_data.node_set_name.value()); + } + condition_specs.emplace_back(parsed_condition_data); } } diff --git a/src/core/fem/src/condition/4C_fem_condition_definition.hpp b/src/core/fem/src/condition/4C_fem_condition_definition.hpp index c8cb73df50e..9181b78d17d 100644 --- a/src/core/fem/src/condition/4C_fem_condition_definition.hpp +++ b/src/core/fem/src/condition/4C_fem_condition_definition.hpp @@ -116,16 +116,16 @@ namespace Core::Conditions \param condition_specs vector of the validated condition specifications in the input to be filled. */ - void read(Core::IO::InputFile& input, std::vector& condition_specs) const; + void read(const Core::IO::InputFile& input, std::vector& condition_specs) const; /// name of my section in input file - std::string section_name() const { return sectionname_; } + [[nodiscard]] std::string section_name() const { return sectionname_; } /// my condition name - std::string name() const { return conditionname_; } + [[nodiscard]] std::string name() const { return conditionname_; } /// my GeometryType - Core::Conditions::GeometryType geometry_type() const { return gtype_; } + [[nodiscard]] Core::Conditions::GeometryType geometry_type() const { return gtype_; } /// Get the InputSpec for this ConditionDefinition [[nodiscard]] Core::IO::InputSpec spec() const; diff --git a/tests/tutorials/battery/tutorial_battery.4C.yaml b/tests/tutorials/battery/tutorial_battery.4C.yaml index 977828503ab..ad846c77765 100644 --- a/tests/tutorials/battery/tutorial_battery.4C.yaml +++ b/tests/tutorials/battery/tutorial_battery.4C.yaml @@ -4,6 +4,7 @@ PROBLEM TYPE: IO: STRUCT_STRESS: "Cauchy" STDOUTEVERY: 0 + ELEMENT_MAT_ID: true IO/RUNTIME VTK OUTPUT: INTERVAL_STEPS: 1 @@ -15,8 +16,8 @@ IO/RUNTIME VTK OUTPUT/STRUCTURE: SSI CONTROL: NUMSTEP: 2 - MAXTIME: 2e+07 - TIMESTEP: 1000 + MAXTIME: 2.0e7 + TIMESTEP: 10.0e3 COUPALGO: ssi_Monolithic SCATRATIMINTTYPE: "Elch" @@ -61,7 +62,7 @@ SCALAR TRANSPORT DYNAMIC/S2I COUPLING: MESHTYING_CONDITIONS_INDEPENDENT_SETUP: true SOLVER 1: - SOLVER: "UMFPACK" + SOLVER: MUMPS MATERIALS: - MAT: 1 @@ -73,6 +74,7 @@ MATERIALS: OCP_MODEL: Function: OCP_FUNCT_NUM: 6 + - MAT: 2 MAT_MultiplicativeSplitDefgradElastHyper: NUMMATEL: 1 @@ -80,10 +82,12 @@ MATERIALS: NUMFACINEL: 1 INELDEFGRADFACIDS: [4] DENS: 4780 + - MAT: 3 ELAST_CoupNeoHooke: YOUNG: 1.8485e+11 NUE: 0.3 + - MAT: 4 MAT_InelasticDefgradPolyIntercalFracIso: SCALAR1: 1 @@ -94,18 +98,21 @@ MATERIALS: X_min: 0.152 X_max: 0.94 MATID: 1 + - MAT: 5 MAT_elchmat: NUMDOF: 2 NUMSCAL: 1 NUMPHASE: 1 PHASEIDS: [6] + - MAT: 6 MAT_elchphase: EPSILON: 1 TORTUOSITY: 1 NUMMAT: 1 MATIDS: [7] + - MAT: 7 MAT_newman: VALENCE: 1 @@ -113,6 +120,7 @@ MATERIALS: COND: 16.11 TRANSFERENCE_NR: 1.0 THERM_FAC: 1.0 + - MAT: 8 MAT_MultiplicativeSplitDefgradElastHyper: NUMMATEL: 1 @@ -120,12 +128,15 @@ MATERIALS: NUMFACINEL: 1 INELDEFGRADFACIDS: [10] DENS: 1850 + - MAT: 9 ELAST_CoupNeoHooke: YOUNG: 2.601e+10 NUE: 0.27 + - MAT: 10 MAT_InelasticDefgradNoGrowth: {} + - MAT: 11 MAT_electrode: DIFF_COEF: 1.0 @@ -135,6 +146,7 @@ MATERIALS: OCP_MODEL: Function: OCP_FUNCT_NUM: 7 + - MAT: 12 MAT_MultiplicativeSplitDefgradElastHyper: NUMMATEL: 1 @@ -142,16 +154,19 @@ MATERIALS: NUMFACINEL: 1 INELDEFGRADFACIDS: [14] DENS: 530 + - MAT: 13 ELAST_CoupNeoHooke: YOUNG: 4.9e+09 NUE: 0.42 + - MAT: 14 MAT_InelasticDefgradLinScalarAniso: SCALAR1: 1 SCALAR1_MolarGrowthFac: 1.2998e-05 SCALAR1_RefConc: 1 GrowthDirection: [1, 0, 0] + - MAT: 15 MAT_electrode: DIFF_COEF: 1.0 @@ -161,6 +176,7 @@ MATERIALS: OCP_MODEL: Function: OCP_FUNCT_NUM: 7 + - MAT: 16 MAT_MultiplicativeSplitDefgradElastHyper: NUMMATEL: 1 @@ -168,10 +184,12 @@ MATERIALS: NUMFACINEL: 1 INELDEFGRADFACIDS: [10] DENS: 8920 + - MAT: 17 ELAST_CoupNeoHooke: YOUNG: 1.15e+11 NUE: 0.34 + - MAT: 19 MAT_electrode: DIFF_COEF: 1.0 @@ -181,6 +199,7 @@ MATERIALS: OCP_MODEL: Function: OCP_FUNCT_NUM: 7 + - MAT: 20 MAT_MultiplicativeSplitDefgradElastHyper: NUMMATEL: 1 @@ -188,6 +207,7 @@ MATERIALS: NUMFACINEL: 1 INELDEFGRADFACIDS: [10] DENS: 2700 + - MAT: 21 ELAST_CoupNeoHooke: YOUNG: 6.9e+10 @@ -198,18 +218,22 @@ CLONING MATERIAL MAP: SRC_MAT: 2 TAR_FIELD: "scatra" TAR_MAT: 1 + - SRC_FIELD: "structure" SRC_MAT: 8 TAR_FIELD: "scatra" TAR_MAT: 5 + - SRC_FIELD: "structure" SRC_MAT: 12 TAR_FIELD: "scatra" TAR_MAT: 11 + - SRC_FIELD: "structure" SRC_MAT: 16 TAR_FIELD: "scatra" TAR_MAT: 15 + - SRC_FIELD: "structure" SRC_MAT: 20 TAR_FIELD: "scatra" @@ -253,198 +277,206 @@ FUNCT6: FUNCT7: - FASTPOLYNOMIAL: NUMCOEFF: 1 - COEFF: [0] + COEFF: [0.0] RESULT DESCRIPTION: - SCATRA: DIS: "scatra" NODE: 32 QUANTITY: "phi1" - VALUE: 1.26777850815654229e+01 - TOLERANCE: 1.3e-07 + VALUE: 1.17729179835590955e+02 + TOLERANCE: 1.2e-06 - SCATRA: DIS: "scatra" NODE: 32 QUANTITY: "phi2" - VALUE: 5.63408408249148287e-06 + VALUE: 5.63420877183655170e-06 TOLERANCE: 5.6e-14 - SCATRA: DIS: "scatra" NODE: 95 QUANTITY: "phi1" - VALUE: 1.2e3 + VALUE: 1.20023216963911113e+03 TOLERANCE: 1.2e-05 - SCATRA: DIS: "scatra" NODE: 95 QUANTITY: "phi2" - VALUE: 1.93918473648069017e-04 - TOLERANCE: 1.9e-12 + VALUE: 2.02652764799278619e-04 + TOLERANCE: 2.0e-12 - SCATRA: DIS: "scatra" NODE: 232 QUANTITY: "phi1" - VALUE: 4.18389051248949399e+04 - TOLERANCE: 4.2e-4 + VALUE: 4.31876698510277783e+04 + TOLERANCE: 4.3e-4 - SCATRA: DIS: "scatra" NODE: 232 QUANTITY: "phi2" - VALUE: 3.60022131383473765e+00 + VALUE: 3.60019943891482708e+00 TOLERANCE: 3.6e-08 - STRUCTURE: DIS: "structure" NODE: 32 QUANTITY: "dispx" - VALUE: -6.66773032761887734e-08 - TOLERANCE: 6.7e-15 + VALUE: 8.44280151667777646e-08 + TOLERANCE: 8.4e-16 - STRUCTURE: DIS: "structure" NODE: 32 QUANTITY: "dispy" - VALUE: -2.07081933892450716e-10 - TOLERANCE: 1.0e-16 + VALUE: -8.44280151749625117e-08 + TOLERANCE: 8.4e-16 - STRUCTURE: DIS: "structure" NODE: 32 QUANTITY: "dispz" - VALUE: 2.07081926671139049e-10 - TOLERANCE: 1.0e-16 + VALUE: -9.67592544354235016e-08 + TOLERANCE: 9.7e-16 - STRUCTURE: DIS: "structure" NODE: 95 QUANTITY: "dispx" - VALUE: -2.46786207653848376e-08 - TOLERANCE: 2.5e-16 + VALUE: 2.07719538778803939e-09 + TOLERANCE: 1.0e-16 - STRUCTURE: DIS: "structure" NODE: 95 QUANTITY: "dispy" - VALUE: 5.06484398044960120e-09 + VALUE: -8.12085065370041722e-09 TOLERANCE: 1.0e-16 - STRUCTURE: DIS: "structure" NODE: 95 QUANTITY: "dispz" - VALUE: -5.06484397125480544e-09 - TOLERANCE: 1.0e-16 + VALUE: -1.76358836650572382e-08 + TOLERANCE: 1.8e-16 - STRUCTURE: DIS: "structure" NODE: 232 QUANTITY: "dispx" - VALUE: -1.92532124495455729e-08 - TOLERANCE: 2.0e-16 + VALUE: 3.14013986975288425e-09 + TOLERANCE: 1.0e-16 - STRUCTURE: DIS: "structure" NODE: 232 QUANTITY: "dispz" - VALUE: 3.77494081961681657e-08 - TOLERANCE: 3.8e-16 + VALUE: -7.04564778319423031e-08 + TOLERANCE: 7.0e-16 PROBLEM SIZE: DIM: 3 DESIGN SURF TRANSPORT NEUMANN CONDITIONS: - - E: 12 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: surface_normal_z_cat_cc NUMDOF: 2 ONOFF: [0, 1] VAL: [0, 5.839316572e-06] - FUNCT: [0, 0] + FUNCT: [null, null] DESIGN POINT DIRICH CONDITIONS: - - E: 23 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: vertices_an_side_cc NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 24 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: vertices_cat_side_cc NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] DESIGN LINE DIRICH CONDITIONS: - - E: 16 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: curves_y_dir_an_cc NUMDOF: 3 ONOFF: [1, 0, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 17 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: curves_x_dir_an_cc NUMDOF: 3 - ONOFF: [1, 1, 0] + ONOFF: [0, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 18 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: curves_(-1_1_0)_dir_an_cc NUMDOF: 3 - ONOFF: [1, 1, 0] + ONOFF: [1, 0, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 19 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: curves_y_dir_cat_cc + NUMDOF: 3 + ONOFF: [1, 0, 1] + VAL: [0, 0, 0] + FUNCT: [null, null, null] + + - NODE_SET_NAME: curves_x_dir_cat_cc NUMDOF: 3 ONOFF: [0, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] + - NODE_SET_NAME: curves_(-1_1_0)_dir_cat_cc + NUMDOF: 3 + ONOFF: [1, 0, 1] + VAL: [0, 0, 0] + FUNCT: [null, null, null] + + - NODE_SET_NAME: curves_z_dir + NUMDOF: 3 + ONOFF: [1, 1, 0] + VAL: [0, 0, 0] + FUNCT: [null, null, null] + DESIGN SURF DIRICH CONDITIONS: - - E: 1 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: surface_normal_z_an_cc NUMDOF: 3 - ONOFF: [1, 0, 0] + ONOFF: [0, 0, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 12 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: surface_normal_z_cat_cc NUMDOF: 3 - ONOFF: [1, 0, 0] + ONOFF: [0, 0, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 13 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: surface_normal_y NUMDOF: 3 ONOFF: [0, 1, 0] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 14 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: surface_normal_x NUMDOF: 3 - ONOFF: [0, 0, 1] + ONOFF: [1, 0, 0] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 15 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: surface_normal_(1_1_0) NUMDOF: 3 ONOFF: [0, 1, 0] VAL: [0, 0, 0] FUNCT: [null, null, null] DESIGN SURF TRANSPORT DIRICH CONDITIONS: - - E: 1 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: surface_normal_z_an_cc NUMDOF: 2 ONOFF: [0, 1] VAL: [0, 0] FUNCT: [0, 0] DESIGN VOL TRANSPORT DIRICH CONDITIONS: - - E: 2 - ENTITY_TYPE: element_block_id - NUMDOF: 2 - ONOFF: [1, 0] - VAL: [1200, 0] - FUNCT: [0, 0] - E: 4 ENTITY_TYPE: element_block_id NUMDOF: 2 ONOFF: [1, 0] VAL: [1200, 0] FUNCT: [0, 0] + - E: 5 ENTITY_TYPE: element_block_id NUMDOF: 2 @@ -457,42 +489,49 @@ DESIGN VOL INITIAL FIELD CONDITIONS: ENTITY_TYPE: element_block_id FIELD: "ScaTra" FUNCT: 1 + - E: 2 ENTITY_TYPE: element_block_id FIELD: "ScaTra" FUNCT: 2 + - E: 3 ENTITY_TYPE: element_block_id FIELD: "ScaTra" FUNCT: 3 + - E: 4 ENTITY_TYPE: element_block_id FIELD: "ScaTra" FUNCT: 4 + - E: 5 ENTITY_TYPE: element_block_id FIELD: "ScaTra" FUNCT: 5 DESIGN LINE LOCSYS CONDITIONS: - - E: 18 - ENTITY_TYPE: node_set_id - ROTANGLE: [0.7853981634, 0, 0] + - NODE_SET_NAME: curves_(-1_1_0)_dir_cat_cc + ROTANGLE: [0, 0, -0.7853981634] + FUNCT: [0, 0, 0] + USEUPDATEDNODEPOS: 0 + USECONSISTENTNODENORMAL: 0 + + - NODE_SET_NAME: curves_(-1_1_0)_dir_an_cc + ROTANGLE: [0, 0, -0.7853981634] FUNCT: [0, 0, 0] USEUPDATEDNODEPOS: 0 USECONSISTENTNODENORMAL: 0 DESIGN SURF LOCSYS CONDITIONS: - - E: 15 - ENTITY_TYPE: node_set_id - ROTANGLE: [0.7853981634, 0, 0] + - NODE_SET_NAME: surface_normal_(1_1_0) + ROTANGLE: [0, 0, -0.7853981634] FUNCT: [0, 0, 0] USEUPDATEDNODEPOS: 0 USECONSISTENTNODENORMAL: 0 DESIGN S2I KINETICS SURF CONDITIONS: - - E: 2 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cc_side(s)_an-cc_interface ConditionID: 0 INTERFACE_SIDE: "Slave" KINETIC_MODEL: "ConstantInterfaceResistance" @@ -500,12 +539,12 @@ DESIGN S2I KINETICS SURF CONDITIONS: RESISTANCE: 1e-05 E-: 1 IS_PSEUDO_CONTACT: false - - E: 3 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: an_side(t)_an-cc_interface ConditionID: 0 INTERFACE_SIDE: "Master" - - E: 4 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: an_side(s)_an-el_interface ConditionID: 1 INTERFACE_SIDE: "Slave" KINETIC_MODEL: "Butler-VolmerReduced" @@ -516,16 +555,16 @@ DESIGN S2I KINETICS SURF CONDITIONS: ALPHA_A: 0.5 ALPHA_C: 0.5 IS_PSEUDO_CONTACT: false - - E: 5 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: el_side(t)_an-el_interface ConditionID: 1 INTERFACE_SIDE: "Master" - - E: 6 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: el_side(t)_cat-el_interface ConditionID: 2 INTERFACE_SIDE: "Master" - - E: 7 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: cat_side(s)_cat-el_interface ConditionID: 2 INTERFACE_SIDE: "Slave" KINETIC_MODEL: "Butler-Volmer" @@ -536,12 +575,12 @@ DESIGN S2I KINETICS SURF CONDITIONS: ALPHA_A: 0.5 ALPHA_C: 0.5 IS_PSEUDO_CONTACT: false - - E: 8 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: cat_side(t)_cat-cc_interface ConditionID: 3 INTERFACE_SIDE: "Master" - - E: 9 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: cc_side(s)_am_cat-cc_interface ConditionID: 3 INTERFACE_SIDE: "Slave" KINETIC_MODEL: "ConstantInterfaceResistance" @@ -549,12 +588,12 @@ DESIGN S2I KINETICS SURF CONDITIONS: RESISTANCE: 1e-05 E-: 1 IS_PSEUDO_CONTACT: false - - E: 10 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: el_side(t)_el_cat-cc_interface ConditionID: 4 INTERFACE_SIDE: "Master" - - E: 11 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: cc_side(s)_el_cat-cc_interface ConditionID: 4 INTERFACE_SIDE: "Slave" KINETIC_MODEL: "NoInterfaceFlux" @@ -568,61 +607,59 @@ DESIGN ELECTRODE STATE OF CHARGE VOL CONDITIONS: ONE_HOUR: 3.6e+06 DESIGN CELL VOLTAGE SURF CONDITIONS: - - E: 1 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: surface_normal_z_an_cc ConditionID: 0 - - E: 12 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: surface_normal_z_cat_cc ConditionID: 1 DESIGN SSI INTERFACE MESHTYING SURF CONDITIONS: - - E: 2 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cc_side(s)_an-cc_interface ConditionID: 0 INTERFACE_SIDE: "Slave" S2I_KINETICS_ID: 0 - - E: 3 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: an_side(t)_an-cc_interface ConditionID: 0 INTERFACE_SIDE: "Master" S2I_KINETICS_ID: 0 - - E: 4 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: an_side(s)_an-el_interface ConditionID: 1 INTERFACE_SIDE: "Slave" S2I_KINETICS_ID: 1 - - E: 5 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: el_side(t)_an-el_interface ConditionID: 1 INTERFACE_SIDE: "Master" S2I_KINETICS_ID: 1 - - E: 6 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: el_side(t)_cat-el_interface ConditionID: 2 INTERFACE_SIDE: "Master" S2I_KINETICS_ID: 2 - - E: 7 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: cat_side(s)_cat-el_interface ConditionID: 2 INTERFACE_SIDE: "Slave" S2I_KINETICS_ID: 2 - - E: 8 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: cat_side(t)_cat-cc_interface ConditionID: 3 INTERFACE_SIDE: "Master" S2I_KINETICS_ID: 3 - - E: 9 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: cc_side(s)_am_cat-cc_interface ConditionID: 3 INTERFACE_SIDE: "Slave" S2I_KINETICS_ID: 3 - - E: 10 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: el_side(t)_el_cat-cc_interface ConditionID: 4 INTERFACE_SIDE: "Master" S2I_KINETICS_ID: 4 - - E: 11 - ENTITY_TYPE: node_set_id + + - NODE_SET_NAME: cc_side(s)_el_cat-cc_interface ConditionID: 4 INTERFACE_SIDE: "Slave" S2I_KINETICS_ID: 4 @@ -631,31 +668,31 @@ STRUCTURE GEOMETRY: FILE: "tutorial_battery.e" SHOW_INFO: "summary" ELEMENT_BLOCKS: - - ID: 1 + - NAME: anode SOLIDSCATRA: TET4: MAT: 12 KINEM: nonlinear TYPE: ElchElectrode - - ID: 2 + - NAME: electrolyte SOLIDSCATRA: TET4: MAT: 8 KINEM: nonlinear TYPE: ElchDiffCond - - ID: 3 + - NAME: cathode SOLIDSCATRA: TET4: MAT: 2 KINEM: nonlinear TYPE: ElchElectrode - - ID: 4 + - NAME: anode_cc SOLIDSCATRA: TET4: MAT: 16 KINEM: nonlinear TYPE: ElchElectrode - - ID: 5 + - NAME: cathode_cc SOLIDSCATRA: TET4: MAT: 20 diff --git a/tests/tutorials/battery/tutorial_battery.e b/tests/tutorials/battery/tutorial_battery.e index c97c207f0d5..ee955778896 100644 Binary files a/tests/tutorials/battery/tutorial_battery.e and b/tests/tutorials/battery/tutorial_battery.e differ diff --git a/tests/tutorials/battery/tutorial_battery.jou b/tests/tutorials/battery/tutorial_battery.jou index 88c326dcf07..b493c33e3aa 100644 --- a/tests/tutorials/battery/tutorial_battery.jou +++ b/tests/tutorials/battery/tutorial_battery.jou @@ -32,15 +32,15 @@ $ -------------------------- $ | geometry | $ -------------------------- $ anode -create brick x {an} y {2*r*cos(theta/360*PI)} z {2*r*cos(theta/360*PI)} +create brick x {2*r*cos(theta/360*PI)} y {2*r*cos(theta/360*PI)} z {an} compress -move volume 1 x {an/2 + (2*n_c-3)*r*cos(theta/360*PI)+2*r+sep} +move volume 1 z {an/2 + (2*n_c-3)*r*cos(theta/360*PI)+2*r+sep} compress $ electrolyte -create brick x {(n_c-1)*2*r*cos(theta/360*PI)+2*r+sep} y {2*r*cos(theta/360*PI)} z {2*r*cos(theta/360*PI)} +create brick x {2*r*cos(theta/360*PI)} y {2*r*cos(theta/360*PI)} z {(n_c-1)*2*r*cos(theta/360*PI)+2*r+sep} compress -move volume 2 x {(n_c-2)*r*cos(theta/360*PI)+r+sep/2} +move volume 2 z {(n_c-2)*r*cos(theta/360*PI)+r+sep/2} compress $ cathode @@ -48,7 +48,7 @@ $ cathode # {Loop(n_c)} create sphere radius {r} # {if(i>0)} - move volume 4 x {i*2*r*cos(theta/360*PI)} + move volume 4 z {i*2*r*cos(theta/360*PI)} unite volume 3 4 compress # {endif} @@ -58,21 +58,21 @@ compress $ insert one non-connected sphere create sphere radius {r_non_conn} -move volume 4 x {-r*cos(theta/360*PI)} y {-r*cos(theta/360*PI)} z {r*cos(theta/360*PI)} +move volume 4 x {r*cos(theta/360*PI)} y {-r*cos(theta/360*PI)} z {-r*cos(theta/360*PI)} intersect volume 2 4 keep subtract volume 4 from volume 2 volume 5 id 4 $ anode current collector -create brick x {cc_an} y {2*r*cos(theta/360*PI)} z {2*r*cos(theta/360*PI)} +create brick x {2*r*cos(theta/360*PI)} y {2*r*cos(theta/360*PI)} z {cc_an} compress -move volume 5 x {cc_an/2 + an + (2*n_c-3)*r*cos(theta/360*PI)+2*r+sep} +move volume 5 z {cc_an/2 + an + (2*n_c-3)*r*cos(theta/360*PI)+2*r+sep} compress $ cathode current collector -create brick x {cc_cat} y {2*r*cos(theta/360*PI)} z {2*r*cos(theta/360*PI)} +create brick x {2*r*cos(theta/360*PI)} y {2*r*cos(theta/360*PI)} z {cc_cat} compress -move volume 6 x {-cc_cat/2-r*cos(theta/360*PI)} +move volume 6 z {-cc_cat/2-r*cos(theta/360*PI)} $ trim the connected cathode spheres to the box size and cut those spheres from the electrolyte intersect volume 2 3 keep @@ -81,14 +81,14 @@ volume 7 id 3 compress $ cut out symmetric cuboid -webcut volume all with plane zplane imprint +webcut volume all with plane xplane imprint delete volume 7 8 9 10 11 compress webcut volume all with plane yplane imprint delete volume 7 8 9 10 11 compress $ cut out symmetric wedge -webcut volume all with plane yplane rotate 45 about x imprint +webcut volume all with plane yplane rotate -45 about z imprint delete volume 7 8 9 10 11 12 compress @@ -109,25 +109,23 @@ set tetmesher optimize level 3 overconstrained off sliver off set tetmesher boundary recovery off volume 1 size {meshsize_a*r} # {if(interfacemeshsize_a>0.0)} - surface with x_max = {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep} in volume 1 size {interfacemeshsize_a} + surface with z_max = {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep} in volume 1 size {interfacemeshsize_a} # {endif} volume 2 size {meshsize_e*r} volume 3 size {meshsize_c*r} # {if(interfacemeshsize_c>0.0)} - surface with not is_plane in volume 3 size {interfacemeshsize_c} -# {endif} -# {if(contactcurveintervals_e>0 && (matching!=1 || (interfacemeshsize_a==0.0 && interfacemeshsize_c==0.0)))} - curve with length <= {2*PI*r*sin(theta/360*PI)} and with Y_Min == Y_Max in volume 2 interval {contactcurveintervals_e} + surface with not is_plane in volume 3 size {interfacemeshsize_c*r} + surface with not is_plane in volume 4 size {interfacemeshsize_c*r} # {endif} # {if(particlediameterintervals_c>0)} curve with Y_Min == 0 and Y_Max == 0 in volume 3 interval {n_c*particlediameterintervals_c} scheme equal # {endif} volume 4 size {meshsize_cat_non*r} -volume 5 size {meshsize_cc_an} -volume 6 size {meshsize_cc_cat} +volume 5 size {meshsize_cc_an*r} +volume 6 size {meshsize_cc_cat*r} mesh volume all # {if(meshrefinements_a>0)} - refine surface with x_max = {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep} in volume 1 numsplit {meshrefinements_a} bias 1.0 depth 1 smooth + refine surface with z_max = {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep} in volume 1 numsplit {meshrefinements_a} bias 1.0 depth 1 smooth # {endif} # {if(meshrefinements_c>0)} refine surface with not is_plane in volume 3 numsplit {meshrefinements_c} bias 1.0 depth 1 smooth @@ -156,130 +154,139 @@ block 3 Name "cathode" # anode side current collector block 4 volume 5 -block 4 Name "anode cc" +block 4 Name "anode_cc" # cathode side current collector block 5 volume 6 -block 5 Name "cathode cc" +block 5 Name "cathode_cc" # anode-side current collector -nodeset 1 surface with x_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+cc_an-tol} in volume 5 -nodeset 1 Name "an-side cc" +nodeset 1 surface with z_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+cc_an-tol} in volume 5 +nodeset 1 Name "surface_normal_z_an_cc" # current collector-side of anode-current collector interface -nodeset 2 surface with x_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+tol} in volume 5 -nodeset 2 Name "cc-side (sl) of an-cc interface" +nodeset 2 surface with z_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+tol} in volume 5 +nodeset 2 Name "cc_side(s)_an-cc_interface" # anode-side of anode-current collector interface -nodeset 3 surface with x_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an-tol} in volume 1 -nodeset 3 Name "an-side (ma) of an-cc interface" +nodeset 3 surface with z_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an-tol} in volume 1 +nodeset 3 Name "an_side(t)_an-cc_interface" # anode-side of anode-electrolyte interface -nodeset 4 surface with x_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+tol} in volume 1 -nodeset 4 Name "an-side (sl) of an-el interface" +nodeset 4 surface with z_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+tol} in volume 1 +nodeset 4 Name "an_side(s)_an-el_interface" # electrolyte-side of anode-electrolyte interface -nodeset 5 surface with x_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep-tol} in volume 2 -nodeset 5 Name "el-side (ma) of an-el interface" +nodeset 5 surface with z_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep-tol} in volume 2 +nodeset 5 Name "el_side(t)_an-el_interface" # electrolyte-side of cathode-electrolyte interface nodeset 6 surface with not is_plane in volume 2 -nodeset 6 Name "el-side (ma) of cat-el interface" +nodeset 6 Name "el_side(t)_cat-el_interface" # cathode-side of cathode-electrolyte interface nodeset 7 surface with not is_plane in volume 3 4 -#nodeset 7 Name "cat-side (sl) of cat-el interface" #commented since string is too long for the tutorial-framework, yet it is good to have descriptive names +nodeset 7 Name "cat_side(s)_cat-el_interface" # cathode-side of composite cathode-current collector interface -nodeset 8 surface with x_max <= {-r*cos(theta/360*PI) + tol} in volume 3 4 -#nodeset 8 Name "cat-side (ma) of cat-cc interface" #commented since string is too long for the tutorial-framework, yet it is good to have descriptive names +nodeset 8 surface with z_max <= {-r*cos(theta/360*PI) + tol} in volume 3 4 +nodeset 8 Name "cat_side(t)_cat-cc_interface" # current collector-side of cathode part composite cathode-current collector interface -nodeset 9 surface with x_min >= {-r*cos(theta/360*PI) - tol} and z_max <= {0.5*r*cos(theta/360*PI)} in volume 6 -nodeset 9 surface with x_min >= {-r*cos(theta/360*PI) - tol} and z_min >= {0.5*r*cos(theta/360*PI)} in volume 6 -#nodeset 9 Name "cc-side (sl) of cat-comp_cat-cc interface" #commented since string is too long for the tutorial-framework, yet it is good to have descriptive names +nodeset 9 surface with z_min >= {-r*cos(theta/360*PI) - tol} and x_max <= {r*sin(theta/360*PI)*cos(45/180*PI)+tol} in volume 6 +nodeset 9 surface with z_min >= {-r*cos(theta/360*PI) - tol} and x_min >= {r*cos(theta/360*PI)-r_non_conn-tol} in volume 6 +nodeset 9 Name "cc_side(s)_am_cat-cc_interface" # solid electrolyte-side of composite cathode-current collector interface -nodeset 10 surface with x_max <= {-r*cos(theta/360*PI) + tol} in volume 2 -#nodeset 10 Name "sol-el-side (ma) of comp_cat-cc interface" #commented since string is too long for the tutorial-framework, yet it is good to have descriptive names +nodeset 10 surface with z_max <= {-r*cos(theta/360*PI) + tol} in volume 2 +nodeset 10 Name "el_side(t)_el_cat-cc_interface" # current collector-side of cathode part composite cathode-current collector interface -nodeset 11 surface with x_min >= {-r*cos(theta/360*PI) - tol} and z_min <= {0.5*r*cos(theta/360*PI)} and z_max >= {0.5*r*cos(theta/360*PI)} in volume 6 -#nodeset 11 Name "cc-side (sl) of sol-el-comp_cat-cc interface" #commented since string is too long for the tutorial-framework, yet it is good to have descriptive names +nodeset 11 surface with z_min >= {-r*cos(theta/360*PI) - tol} and x_min == {0.0} and x_max >= {r*sin(theta/360*PI)*sin(45/180*PI) + tol} in volume 6 +nodeset 11 Name "cc_side(s)_el_cat-cc_interface" # cathode-side current collector -nodeset 12 surface with x_max <= {-r*cos(theta/360*PI)-cc_cat} in volume 6 -nodeset 12 Name "cat-side cc" +nodeset 12 surface with z_max <= {-r*cos(theta/360*PI)-cc_cat+tol} in volume 6 +nodeset 12 Name "surface_normal_z_cat_cc" # battery surface normal to y axis # add all surfaces that are normal to the y axis -nodeset 13 surface with y_max <= {-r*cos(theta/360*PI)} in volume all -# remove lines of cathode and anode as they are the slave side nodes -> no DBC can be prescribed here +nodeset 13 surface with y_max <= {-r*cos(theta/360*PI)+tol} in volume all +# remove lines of cathode and anode as they are the source side nodes -> no DBC can be prescribed here nodeset 13 node in surface with not is_plane in volume 3 4 remove -nodeset 13 node in surface with x_min >= {-r*cos(theta/360*PI)-tol} in volume 6 remove -nodeset 13 node in surface with x_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+tol} in volume 5 remove -nodeset 13 node in surface with x_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+tol} in volume 1 remove -nodeset 13 Name "battery surface normal to y" - -# battery surface normal to z axis -# add all surfaces that are normal to the z axis -nodeset 14 surface with z_max <= {0.0} in volume all -# remove lines of cathode and anode as they are the slave side nodes -> no DBC can be prescribed here +nodeset 13 node in surface with z_min >= {-r*cos(theta/360*PI)-tol} in volume 6 remove +nodeset 13 node in surface with z_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+tol} in volume 5 remove +nodeset 13 node in surface with z_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+tol} in volume 1 remove +nodeset 13 Name "surface_normal_y" + +# battery surface normal to x axis +# add all surfaces that are normal to the x axis +nodeset 14 surface with x_max <= {tol} in volume all +# remove lines of cathode and anode as they are the source side nodes -> no DBC can be prescribed here nodeset 14 node in surface with not is_plane in volume 3 4 remove -nodeset 14 node in surface with x_min >= {-r*cos(theta/360*PI)-tol} in volume 6 remove -nodeset 14 node in surface with x_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+tol} in volume 5 remove -nodeset 14 node in surface with x_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+tol} in volume 1 remove -nodeset 14 Name "battery surface normal to z" - -# battery surface which normal vector is (0 1 1) -# add surfaces that are normal to (0 1 1) - vector of volume 1 -nodeset 15 surface with ((x_max - x_min > {an-tol} ) && (y_max - y_min > {0.7071*r*cos(theta/360*PI)} ) && (z_max - z_min > {0.7071*r*cos(theta/360*PI)} )) in volume 1 -# add surfaces that are normal to (0 1 1) - vector of volume 2 & 3 -nodeset 15 surface with ((x_max - x_min > {r+(2*n_c - 1)*r*cos(theta/360*PI) - tol} ) && (y_max - y_min > {0.7071*r*cos(theta/360*PI)} ) && (z_max - z_min > {0.7071*r*cos(theta/360*PI)} ) && is_plane ) in volume 2 & 3 -# add surfaces that are normal to (0 1 1) - vector of volume 4 -nodeset 15 surface with (x_max - x_min > {r_non_conn - tol} ) && y_max > {-r*cos(theta/360*PI) + tol} && is_plane in volume 4 -# add surfaces that are normal to (0 1 1) - vector of volume 5 -nodeset 15 surface with ((x_max - x_min > {cc_an-tol} ) && (y_max - y_min > {0.7071*r*cos(theta/360*PI)} ) && (z_max - z_min > {0.7071*r*cos(theta/360*PI)} )) in volume 5 -# add surfaces that are normal to (0 1 1) - vector of volume 6 -nodeset 15 surface with ((x_max - x_min > {cc_cat-tol} ) && (y_max - y_min > {0.7071*r*cos(theta/360*PI)} ) && (z_max - z_min > {0.7071*r*cos(theta/360*PI)} )) in volume 6 -# remove lines of cathode and anode as they are the slave side nodes -> no DBC can be prescribed here -nodeset 15 node in surface with not is_plane in volume 3 4 remove -nodeset 15 node in surface with x_min >= {-r*cos(theta/360*PI)-tol} in volume 6 remove -nodeset 15 node in surface with x_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+tol} in volume 5 remove -nodeset 15 node in surface with x_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+tol} in volume 1 remove -#nodeset 15 Name "battery surface normal to (0 1 1) vector" #commented since string is too long for the tutorial-framework, yet it is good to have descriptive names - -# lines in y-direction that need a DBC -nodeset 16 curve with (((x_max - x_min) < {tol}) && ((z_max - z_min) < {tol}) && (x_max <= {-r*cos(theta/360*PI)-cc_cat})) in volume 6 -nodeset 16 curve with (((x_max - x_min) < {tol}) && ((z_max - z_min) < {tol}) && (x_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+cc_an-tol})) in volume 5 -nodeset 16 Name "battery curves in y-direction" - -# lines in z-direction that need a DBC -nodeset 17 curve with (((x_max - x_min) < {tol}) && ((y_max - y_min) < {tol}) && (x_max <= {-r*cos(theta/360*PI)-cc_cat})) in volume 6 -nodeset 17 curve with (((x_max - x_min) < {tol}) && ((y_max - y_min) < {tol}) && (x_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+cc_an-tol})) in volume 5 -nodeset 17 Name "battery curves in z-direction" - -# all lines in (0 1 -1) direction that need a DBC -nodeset 18 curve with ((y_max - y_min) > {tol} && (z_max - z_min) > {tol} && (x_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+cc_an-tol})) in volume 5 -nodeset 18 curve with ((y_max - y_min) > {tol} && (z_max - z_min) > {tol} && (x_max <= {-r*cos(theta/360*PI)-cc_cat})) in volume 6 -#nodeset 18 Name "battery curves in (0 1 -1)-direction" #commented since string is too long for the tutorial-framework, yet it is good to have descriptive names - -# all lines at the battery edges in x-direction -nodeset 19 curve with ((y_max == y_min) && (z_max == z_min)) in volume all -# remove slave side nodes -nodeset 19 node in surface with not is_plane in volume 3 4 remove -nodeset 19 node in surface with x_min >= {-r*cos(theta/360*PI)-tol} in volume 6 remove -nodeset 19 node in surface with x_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+tol} in volume 5 remove -nodeset 19 node in surface with x_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+tol} in volume 1 remove -nodeset 19 Name "battery curves in x-direction" +nodeset 14 node in surface with z_min >= {-r*cos(theta/360*PI)-tol} in volume 6 remove +nodeset 14 node in surface with z_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+tol} in volume 5 remove +nodeset 14 node in surface with z_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+tol} in volume 1 remove +nodeset 14 Name "surface_normal_x" + +# lines in y-direction at cathode-side current collector +nodeset 15 curve with (((z_max - z_min) < {tol}) and ((x_max - x_min) < {tol}) and (z_max <= {-r*cos(theta/360*PI)-cc_cat+tol})) in volume 6 +nodeset 15 Name "curves_y_dir_cat_cc" + +# lines in x-direction at cathode-side current collector +nodeset 16 curve with (((z_max - z_min) < {tol}) and ((y_max - y_min) < {tol}) and (z_max <= {-r*cos(theta/360*PI)-cc_cat+tol})) in volume 6 +nodeset 16 Name "curves_x_dir_cat_cc" + +# all lines at the battery edges in z-direction +nodeset 17 curve with (((x_max - x_min) < {tol}) and ((y_max - y_min) < {tol})) in volume all +# remove source side nodes +nodeset 17 node in surface with not is_plane in volume 3 4 remove +nodeset 17 node in surface with z_min >= {-r*cos(theta/360*PI)-tol} in volume 6 remove +nodeset 17 node in surface with z_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+tol} in volume 5 remove +nodeset 17 node in surface with z_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+tol} in volume 1 remove +nodeset 17 Name "curves_z_dir" + +# lines in y-direction at anode-side current collector +nodeset 18 curve with (((z_max - z_min) < {tol}) and ((x_max - x_min) < {tol}) and (z_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+cc_an-tol})) in volume 5 +nodeset 18 Name "curves_y_dir_an_cc" + +# lines in x-direction at anode-side current collector +nodeset 19 curve with (((z_max - z_min) < {tol}) and ((y_max - y_min) < {tol}) and (z_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+cc_an-tol})) in volume 5 +nodeset 19 Name "curves_x_dir_an_cc" # all vertices at anode-side current collector -nodeset 23 vertex in surface with x_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+cc_an-tol} in volume 5 -nodeset 23 Name "vertices an-side cc +nodeset 20 vertex in surface with z_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+cc_an-tol} in volume 5 +nodeset 20 Name "vertices_an_side_cc" # all vertices at the cathode-side current collector -nodeset 24 vertex in surface with x_max <= {-r*cos(theta/360*PI)-cc_cat} in volume 6 -nodeset 24 Name "vertices cat-side cc" +nodeset 21 vertex in surface with z_max <= {-r*cos(theta/360*PI)-cc_cat+tol} in volume 6 +nodeset 21 Name "vertices_cat_side_cc" + +# battery surface which normal vector is (1 1 0) +# add surfaces that are normal to (1 1 0) - vector of volume 1 +nodeset 22 surface with ((z_max - z_min > {an-tol} ) and (y_max - y_min > {0.7071*r*cos(theta/360*PI)} ) and (x_max - x_min > {0.7071*r*cos(theta/360*PI)} )) in volume 1 +# add surfaces that are normal to (1 1 0) - vector of volume 2 & 3 +nodeset 22 surface with ((z_max - z_min > {r+(2*n_c - 1)*r*cos(theta/360*PI) - tol} ) and (y_max - y_min > {0.7071*r*cos(theta/360*PI)} ) and (x_max - x_min > {0.7071*r*cos(theta/360*PI)} ) and is_plane ) in volume 2 3 +# add surfaces that are normal to (1 1 0) - vector of volume 4 +nodeset 22 surface with (z_max - z_min > {r_non_conn - tol} ) and y_max > {-r*cos(theta/360*PI) + tol} and is_plane in volume 4 +# add surfaces that are normal to (1 1 0) - vector of volume 5 +nodeset 22 surface with ((z_max - z_min > {cc_an-tol} ) and (y_max - y_min > {0.7071*r*cos(theta/360*PI)} ) and (x_max - x_min > {0.7071*r*cos(theta/360*PI)} )) in volume 5 +# add surfaces that are normal to (1 1 0) - vector of volume 6 +nodeset 22 surface with ((z_max - z_min > {cc_cat-tol} ) and (y_max - y_min > {0.7071*r*cos(theta/360*PI)} ) and (x_max - x_min > {0.7071*r*cos(theta/360*PI)} )) in volume 6 +# remove lines of cathode and anode as they are the source side nodes -> no DBC can be prescribed here +nodeset 22 node in surface with not is_plane in volume 3 4 remove +nodeset 22 node in surface with z_min >= {-r*cos(theta/360*PI)-tol} in volume 6 remove +nodeset 22 node in surface with z_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+tol} in volume 5 remove +nodeset 22 node in surface with z_max <= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+tol} in volume 1 remove +nodeset 22 Name "surface_normal_(1_1_0)" + +# lines in (-1 1 0) direction at cathode-side current collector +nodeset 23 curve with ((y_max - y_min) > {tol} and (x_max - x_min) > {tol} and (z_max <= {-r*cos(theta/360*PI)-cc_cat+tol})) in volume 6 +nodeset 23 Name "curves_(-1_1_0)_dir_cat_cc" + +# lines in (-1 1 0) direction at anode-side current collector +nodeset 24 curve with ((y_max - y_min) > {tol} and (x_max - x_min) > {tol} and (z_min >= {(2*n_c-3)*r*cos(theta/360*PI)+2*r+sep+an+cc_an-tol})) in volume 5 +nodeset 24 Name "curves_(-1_1_0)_dir_an_cc" $ -------------------------- $ | scaling | @@ -289,5 +296,5 @@ volume all scale {scaling} $ -------------------------- $ | export | $ -------------------------- -export genesis "tutorial_battery.e" block all dimension 3 overwrite +export mesh "tutorial_battery.e" dimension 3 overwrite exit diff --git a/tests/tutorials/fsi/tutorial_fsi_2d.4C.yaml b/tests/tutorials/fsi/tutorial_fsi_2d.4C.yaml index 8eaca9db877..74dde5e62a0 100644 --- a/tests/tutorials/fsi/tutorial_fsi_2d.4C.yaml +++ b/tests/tutorials/fsi/tutorial_fsi_2d.4C.yaml @@ -142,85 +142,71 @@ FLUID GEOMETRY: NA: ALE DESIGN POINT DIRICH CONDITIONS: - - E: 3 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: structure_vertices NUMDOF: 2 ONOFF: [1, 1] VAL: [0, 0] FUNCT: [0, 0] - - E: 4 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: structure_fsi_vertices NUMDOF: 2 ONOFF: [1, 1] VAL: [0, 0] FUNCT: [0, 0] - - E: 10 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: inflow_vertices_top NUMDOF: 3 ONOFF: [1, 1, 0] VAL: [1, 0, 0] FUNCT: [1, 0, 0] - - E: 11 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_vertices NUMDOF: 3 ONOFF: [1, 1, 0] VAL: [0, 0, 0] FUNCT: [0, 0, 0] - - E: 12 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: fluid_fsi_vertices NUMDOF: 3 ONOFF: [1, 1, 0] VAL: [0, 0, 0] FUNCT: [0, 0, 0] DESIGN LINE DIRICH CONDITIONS: - - E: 1 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: structure_clamping_curves NUMDOF: 2 ONOFF: [1, 1] VAL: [0, 0] FUNCT: [0, 0] - - E: 5 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_wall_curves NUMDOF: 3 ONOFF: [1, 1, 0] VAL: [0, 0, 0] FUNCT: [0, 0, 0] - - E: 6 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: inflow_volume_curve_top NUMDOF: 3 ONOFF: [1, 1, 0] VAL: [1, 0, 0] FUNCT: [1, 0, 0] - - E: 7 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: inflow_area_curve NUMDOF: 3 ONOFF: [1, 1, 0] VAL: [1, 0, 0] FUNCT: [2, 0, 0] DESIGN POINT ALE DIRICH CONDITIONS: - - E: 13 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: fluid_vertices_all NUMDOF: 2 ONOFF: [1, 1] VAL: [0, 0] FUNCT: [0, 0] DESIGN LINE ALE DIRICH CONDITIONS: - - E: 6 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: inflow_volume_curve_top NUMDOF: 2 ONOFF: [1, 1] VAL: [0, 0] FUNCT: [0, 0] - - E: 8 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: fluid_curves_in_y-direction NUMDOF: 2 ONOFF: [1, 1] VAL: [0, 0] FUNCT: [0, 0] DESIGN FSI COUPLING LINE CONDITIONS: - - E: 2 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: structure_fsi_curve coupling_id: 1 - - E: 9 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: fluid_fsi_curve coupling_id: 1 diff --git a/tests/tutorials/fsi/tutorial_fsi_2d.e b/tests/tutorials/fsi/tutorial_fsi_2d.e index abd53d8d42b..42d5c260927 100644 Binary files a/tests/tutorials/fsi/tutorial_fsi_2d.e and b/tests/tutorials/fsi/tutorial_fsi_2d.e differ diff --git a/tests/tutorials/fsi/tutorial_fsi_2d.jou b/tests/tutorials/fsi/tutorial_fsi_2d.jou index 49a341b228a..2e3881417e5 100644 --- a/tests/tutorials/fsi/tutorial_fsi_2d.jou +++ b/tests/tutorials/fsi/tutorial_fsi_2d.jou @@ -199,15 +199,15 @@ block 1 name "flexible_bottom" $ curves nodeset 1 curve in structure_ycurves -nodeset 1 name "structure clamping curves" +nodeset 1 name "structure_clamping_curves" nodeset 2 curve in group structure_fsi_xcurves -nodeset 2 name "structure fsi curve" +nodeset 2 name "structure_fsi_curve" $ vertices nodeset 3 vertex in group structure_vertex -nodeset 3 name "structure vertices" +nodeset 3 name "structure_vertices" nodeset 4 vertex in group structure_vertex_fsi -nodeset 4 name "structure fsi vertices" +nodeset 4 name "structure_fsi_vertices" $======================= Fluid $ surfaces @@ -216,25 +216,25 @@ block 2 name "fluid" $ curves nodeset 5 curve in group cavity_ycurves -nodeset 5 name "cavity wall curves" +nodeset 5 name "cavity_wall_curves" nodeset 6 curve in group inflow_vol_xcurves_top -nodeset 6 name "inflow volume curve top" +nodeset 6 name "inflow_volume_curve_top" nodeset 7 curve in group inflow_ycurves -nodeset 7 name "inflow area curve" +nodeset 7 name "inflow_area_curve" nodeset 8 curve in group fluid_ycurves -nodeset 8 name "fluid curves in y-direction" +nodeset 8 name "fluid_curves_in_y-direction" nodeset 9 curve in group cavity_fsi_xcurves -nodeset 9 name "fluid fsi curve" +nodeset 9 name "fluid_fsi_curve" $ vertices nodeset 10 vertex in group inflow_vertex_top -nodeset 10 name "inflow vertices top" +nodeset 10 name "inflow_vertices_top" nodeset 11 vertex in group cavity_vertex -nodeset 11 name "cavity vertices" +nodeset 11 name "cavity_vertices" nodeset 12 vertex in group fluid_vertex_fsi -nodeset 12 name "fluid fsi vertices" +nodeset 12 name "fluid_fsi_vertices" nodeset 13 vertex in group fluid_vertex -nodeset 13 name "fluid vertices all" +nodeset 13 name "fluid_vertices_all" $======================= export mesh -export mesh "tutorial_fsi.e" block all dimension 2 overwrite +export mesh "tutorial_fsi_2d.e" block all dimension 2 overwrite diff --git a/tests/tutorials/fsi/tutorial_fsi_3d.4C.yaml b/tests/tutorials/fsi/tutorial_fsi_3d.4C.yaml index b8c7c0b6985..d758c102360 100644 --- a/tests/tutorials/fsi/tutorial_fsi_3d.4C.yaml +++ b/tests/tutorials/fsi/tutorial_fsi_3d.4C.yaml @@ -105,369 +105,308 @@ FLUID GEOMETRY: NA: ALE DESIGN POINT DIRICH CONDITIONS: - - E: 32 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_vertex_front_left_bottom NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 33 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_vertex_back_left_bottom NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 34 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_vertex_back_right_bottom NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 35 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_vertex_front_right_bottom NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 36 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity-inflow_vertex_front_1 NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 36 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity-inflow_vertex_front_1 NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 38 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: lid_vertex_front_left NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [1, 0, 0, 0] FUNCT: [1, null, null, null] - - E: 39 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: lid_vertex_back_left NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [1, 0, 0, 0] FUNCT: [1, null, null, null] DESIGN LINE DIRICH CONDITIONS: - - E: 6 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: structure_edge_front_left NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 7 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: structure_edge_back_left NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 8 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: structure_edge_back_right NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 9 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: structure_edge_front_right NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 18 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_front_left NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 19 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_back_left NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 20 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_back_right NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 21 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_front_right NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 22 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_front_bottom NUMDOF: 4 ONOFF: [0, 0, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 23 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_back_bottom NUMDOF: 4 ONOFF: [0, 0, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 24 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_left_bottom NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 25 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_right_bottom NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 26 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity-inflow_edge NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 27 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: inflow_edge_front NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [1, 0, 0, 0] FUNCT: [2, null, null, null] - - E: 28 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: inflow_edge_back NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [1, 0, 0, 0] FUNCT: [2, null, null, null] - - E: 29 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: lid_edge_left NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [1, 0, 0, 0] FUNCT: [1, null, null, null] - - E: 30 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: lid_edge_front NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [1, 0, 0, 0] FUNCT: [1, null, null, null] - - E: 31 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: lid_edge_back NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [1, 0, 0, 0] FUNCT: [1, null, null, null] DESIGN SURF DIRICH CONDITIONS: - - E: 1 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: structure_surface_left NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 2 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: structure_surface_right NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 3 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: structure_surface_front NUMDOF: 3 ONOFF: [0, 0, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 4 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: structure_surface_back NUMDOF: 3 ONOFF: [0, 0, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 10 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_wall_left NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 11 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_wall_right NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 12 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: fluid_wall_front NUMDOF: 4 ONOFF: [0, 0, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 13 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: fluid_wall_back NUMDOF: 4 ONOFF: [0, 0, 1, 0] VAL: [0, 0, 0, 0] FUNCT: [null, null, null, null] - - E: 15 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: lid NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [1, 0, 0, 0] FUNCT: [1, null, null, null] - - E: 16 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: inflow NUMDOF: 4 ONOFF: [1, 1, 1, 0] VAL: [1, 0, 0, 0] FUNCT: [2, null, null, null] DESIGN POINT ALE DIRICH CONDITIONS: - - E: 36 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity-inflow_vertex_front_1 NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 37 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity-inflow_vertex_front_2 NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 38 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: lid_vertex_front_left NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 39 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: lid_vertex_back_left NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] DESIGN LINE ALE DIRICH CONDITIONS: - - E: 18 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_front_left NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 19 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_back_left NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 20 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_back_right NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 21 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_front_right NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 24 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_left_bottom NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 25 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_edge_right_bottom NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 26 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity-inflow_edge NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 27 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: inflow_edge_front NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 28 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: inflow_edge_back NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 29 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: lid_edge_left NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 30 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: lid_edge_front NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 31 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: lid_edge_back NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] DESIGN SURF ALE DIRICH CONDITIONS: - - E: 10 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_wall_left NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 11 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: cavity_wall_right NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 12 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: fluid_wall_front NUMDOF: 3 ONOFF: [0, 0, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 13 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: fluid_wall_back NUMDOF: 3 ONOFF: [0, 0, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 15 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: lid NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 16 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: inflow NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] - - E: 17 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: outflow NUMDOF: 3 ONOFF: [1, 1, 1] VAL: [0, 0, 0] FUNCT: [null, null, null] DESIGN FSI COUPLING SURF CONDITIONS: - - E: 5 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: structure_coupling_surface coupling_id: 1 - - E: 14 - ENTITY_TYPE: node_set_id + - NODE_SET_NAME: fluid_coupling_surface coupling_id: 1 diff --git a/tests/tutorials/fsi/tutorial_fsi_3d.e b/tests/tutorials/fsi/tutorial_fsi_3d.e index 376ddba1199..8d64ec0e809 100644 Binary files a/tests/tutorials/fsi/tutorial_fsi_3d.e and b/tests/tutorials/fsi/tutorial_fsi_3d.e differ diff --git a/tests/tutorials/fsi/tutorial_fsi_3d.jou b/tests/tutorials/fsi/tutorial_fsi_3d.jou index 31344d856e8..43cc66a4bf5 100644 --- a/tests/tutorials/fsi/tutorial_fsi_3d.jou +++ b/tests/tutorials/fsi/tutorial_fsi_3d.jou @@ -54,36 +54,36 @@ $=======================Structure block 1 volume 1 block 1 name "flexible bottom" nodeset 1 surface 4 -nodeset 1 name "structure surface left" +nodeset 1 name "structure_surface_left" nodeset 2 surface 6 -nodeset 2 name "structure surface right" +nodeset 2 name "structure_surface_right" nodeset 3 surface 1 -nodeset 3 name "structure surface front" +nodeset 3 name "structure_surface_front" nodeset 4 surface 2 -nodeset 4 name "structure surface back" +nodeset 4 name "structure_surface_back" nodeset 5 surface 5 -nodeset 5 name "structure coupling surface" +nodeset 5 name "structure_coupling_surface" nodeset 6 curve 3 -nodeset 6 name "structure edge front left" +nodeset 6 name "structure_edge_front_left" nodeset 7 curve 7 -nodeset 7 name "structure edge back left" +nodeset 7 name "structure_edge_back_left" nodeset 8 curve 5 -nodeset 8 name "structure edge back right" +nodeset 8 name "structure_edge_back_right" nodeset 9 curve 1 -nodeset 9 name "structure edge front right" +nodeset 9 name "structure_edge_front_right" $=======================Fluid block 2 volume 2 3 block 2 name "fluid" nodeset 10 surface 15 -nodeset 10 name "cavity wall left" +nodeset 10 name "cavity_wall_left" nodeset 11 surface 17 -nodeset 11 name "cavity wall right" +nodeset 11 name "cavity_wall_right" nodeset 12 surface 14 21 -nodeset 12 name "fluid wall front" +nodeset 12 name "fluid_wall_front" nodeset 13 surface 16 20 -nodeset 13 name "fluid wall back" +nodeset 13 name "fluid_wall_back" nodeset 14 surface 9 -nodeset 14 name "fluid coupling surface" +nodeset 14 name "fluid_coupling_surface" nodeset 15 surface 11 nodeset 15 name "lid" nodeset 16 surface 22 @@ -91,49 +91,49 @@ nodeset 16 name "inflow" nodeset 17 surface 19 nodeset 17 name "outflow" nodeset 18 curve 29 -nodeset 18 name "cavity edge front left" +nodeset 18 name "cavity_edge_front_left" nodeset 19 curve 31 -nodeset 19 name "cavity edge back left" +nodeset 19 name "cavity_edge_back_left" nodeset 20 curve 32 -nodeset 20 name "cavity edge back right" +nodeset 20 name "cavity_edge_back_right" nodeset 21 curve 30 -nodeset 21 name "cavity edge front right" +nodeset 21 name "cavity_edge_front_right" nodeset 22 curve 16 -nodeset 22 name "cavity edge front bottom" +nodeset 22 name "cavity_edge_front_bottom" nodeset 23 curve 18 -nodeset 23 name "cavity edge back bottom" +nodeset 23 name "cavity_edge_back_bottom" nodeset 24 curve 21 -nodeset 24 name "cavity edge left bottom" +nodeset 24 name "cavity_edge_left_bottom" nodeset 25 curve 22 -nodeset 25 name "cavity edge right bottom" +nodeset 25 name "cavity_edge_right_bottom" nodeset 26 curve 26 -nodeset 26 name "cavity-inflow edge" +nodeset 26 name "cavity-inflow_edge" nodeset 27 curve 40 -nodeset 27 name "inflow edge front" +nodeset 27 name "inflow_edge_front" nodeset 28 curve 39 -nodeset 28 name "inflow edge back" +nodeset 28 name "inflow_edge_back" nodeset 29 curve 23 -nodeset 29 name "lid edge left" +nodeset 29 name "lid_edge_left" nodeset 30 curve 14 -nodeset 30 name "lid edge front" +nodeset 30 name "lid_edge_front" nodeset 31 curve 20 -nodeset 31 name "lid edge back" +nodeset 31 name "lid_edge_back" nodeset 32 vertex 12 -nodeset 32 name "cavity vertex front left bottom" +nodeset 32 name "cavity_vertex_front_left_bottom" nodeset 33 vertex 15 -nodeset 33 name "cavity vertex back left bottom" +nodeset 33 name "cavity_vertex_back_left_bottom" nodeset 34 vertex 14 -nodeset 34 name "cavity vertex back right bottom" +nodeset 34 name "cavity_vertex_back_right_bottom" nodeset 35 vertex 9 -nodeset 35 name "cavity vertex front right bottom" +nodeset 35 name "cavity_vertex_front_right_bottom" nodeset 36 vertex 19 -nodeset 36 name "cavity-inflow vertex front 1" +nodeset 36 name "cavity-inflow_vertex_front_1" nodeset 37 vertex 17 -nodeset 37 name "cavity-inflow vertex front 2" +nodeset 37 name "cavity-inflow_vertex_front_2" nodeset 38 vertex 11 -nodeset 38 name "lid vertex front left" +nodeset 38 name "lid_vertex_front_left" nodeset 39 vertex 16 -nodeset 39 name "lid vertex back left" +nodeset 39 name "lid_vertex_back_left" $======================= export mesh export mesh "tutorial_fsi_3d.e" block all dimension 3 overwrite