{"claim":{"id":"df9a76ff-c3b2-4738-b177-4b6b0c0d1a93","submission_id":"3e22c287-8428-455f-b63d-91dd088c5d1e","submission_revision_id":"283f0cb6-9642-4132-8fd3-efc77ee7bd9b","builder":"builder-01","status":"active","claimed_at":"2026-10-15T14:43:01.922790Z","delivered_at":null,"ended_at":null,"delivery_note":null,"end_reason":null},"task":{"submission_id":"3e22c287-8428-455f-b63d-91dd088c5d1e","submission_revision_id":"283f0cb6-9642-4132-8fd3-efc77ee7bd9b","revision_version":1,"submission_status":"under_review","submitted_at":"2026-07-28T07:04:59.410911Z","submitter_name":"xiaotong wang","submitter_email":"sophiewang0507@gmail.com","task":{"status":"submitted","version":1,"extra_fields":{},"submitted_at":"2026-07-28T07:04:59.410911+00:00","industry_domain":"Computational Fluid Dynamics","task_short_name":"openfoam_backward_step_parameter_sweep","operating_system":"Linux","task_description":"Objective:\nCreate and execute a reusable OpenFOAM workflow that evaluates pressure loss for multiple backward-facing-step flow conditions.\nStarting State:\nThe task provides base_case.zip, which contains an unmeshed OpenFOAM Foundation 14 case template, and simulation_parameters.csv, which contains multiple case IDs, inlet velocities, kinematic viscosities, and fluid densities. The velocity and viscosity values stored in the template case are placeholders and must be replaced using the CSV data.\nInstructions and Rules:\n1. Extract base_case.zip.\n2. Read every row in simulation_parameters.csv.\n3. Validate that each case ID is unique and that inlet velocity, kinematic viscosity, and density are positive numerical values.\n4. Mark invalid rows as invalid_input without running OpenFOAM.\n5. For every valid row, create an independent case directory.\n6. Update the inlet velocity in 0/U and the kinematic viscosity in constant/physicalProperties using the corresponding CSV values.\n7. Generate the mesh using blockMesh and save the command output.\n8. Run checkMesh and continue only when the log confirms Mesh OK.\n9. Run the steady incompressible simulation using foamRun and save the solver log.\n10. Determine whether the simulation converged from the solver exit status and convergence message.\n11. For converged cases, calculate the absolute difference between the area-averaged kinematic pressures on the inlet and outlet patches, convert it to Pa using the specified density, and calculate the pressure-loss coefficient.\n12. Export results.csv and retain the mesh, mesh-quality, solver, and post-processing files for every case.\nThe final results.csv must contain exactly these columns:\ncase_id,status,mesh_ok,converged,pressure_drop_Pa,loss_coefficient","software_licensing":"Free/Open Source","evaluation_criteria":null,"verification_method":"The evaluator should execute the submitted workflow in a clean OpenFOAM Foundation 14 environment using the provided input files.\nRequired deliverables:\n1. A reusable script named run_sweep.py.\n2. A results.csv file.\n3. Separate run directories for each valid case.\n4. log.blockMesh, log.checkMesh, log.foamRun, and the generated postProcessing data for each executed case.\nVerification rules:\n1. results.csv must contain exactly these columns:\ncase_id,status,mesh_ok,converged,pressure_drop_Pa,loss_coefficient\n2. The output must contain one row for every row in simulation_parameters.csv and preserve the case IDs.\n3. Rows containing non-positive or non-numerical velocity, viscosity, or density values must have status invalid_input and must not be simulated.\n4. For valid rows, the inlet velocity stored in 0/U and the viscosity stored in constant/physicalProperties must match the corresponding CSV values.\n5. mesh_ok may be true only when log.checkMesh contains Mesh OK.\n6. converged may be true only when foamRun exits successfully and log.foamRun contains the SIMPLE convergence message.\n7. pressure_drop_Pa must be calculated from the final area-averaged inlet and outlet kinematic pressures and converted to Pa using the density from the corresponding CSV row.\n8. loss_coefficient must be calculated as pressure_drop_Pa divided by 0.5 times density times inlet velocity squared.\n9. Numerical results for valid converged cases must be within ±2% of the hidden gold-standard results.\n10. The evaluator should rerun run_sweep.py with at least one alternate hidden parameter file to confirm that the values are calculated rather than hard-coded.","software_and_version":"OpenFOAM Foundation 14","specific_requirements":null,"expected_completion_time":null},"files":[{"file_id":"efa2bdf8-28df-4e12-9467-7ad67ca65557","filename":"simulation_parameters.csv","category":"input_materials","content_type":"text/csv","size_bytes":147},{"file_id":"51c480c3-feb8-4f74-bef1-6c394444e38d","filename":"base_case.zip","category":"input_materials","content_type":"application/zip","size_bytes":777859},{"file_id":"e014c83b-9c98-464a-8a20-db37a777a1c8","filename":"reference_output.zip","category":"reference_output","content_type":"application/zip","size_bytes":4487580}],"deep_review":{"overall_verdict":"Accept","review_text":"**Overall Verdict:** Accept — The submission is complete, reproducible, and objectively evaluable, with only nonmaterial template-description and robustness issues.\n\n**Completeness Check:**\n- Instruction: Complete — The workflow, validation rules, calculations, deliverables, and success gates are explicit.\n- Inputs: Complete — The CSV has the stated schema and three records; the usable OpenFOAM 14 template includes all required dictionaries. It contains an existing mesh despite being described as unmeshed, but `blockMesh` deterministically regenerates that mesh.\n- Toolchain: Complete — OpenFOAM Foundation 14 and Python’s standard library provide a free, Linux-compatible, single-machine execution path.\n- Reference output: Complete — It contains the reusable script, exact-schema results, two valid run directories, required logs, meshes, solver fields, and pressure post-processing data. The invalid row was not simulated.\n- Rubric: Complete — It objectively covers row preservation, input validation, parameter substitution, mesh and convergence evidence, formulas, numerical tolerance, and a hidden-parameter rerun.\n\n**File and Task Reachability:**\nThe attachment set is `reachable`, and the end-to-end task is `reachable`. I inspected `simulation_parameters.csv`, `base_case.zip`, and `reference_output.zip`. Manifest byte counts matched; both ZIP files were readable, unencrypted, CRC-valid, moderately sized, and contained no traversal paths or links. The CSV is plain text with four lines, the template archive has 20 OpenFOAM/text entries, and the reference archive has 141 entries. The submitted Python script was reviewed statically and was not executed. Large numerical mesh and field arrays were structurally checked and sampled rather than reviewed line by line; no relevant attachment was omitted and no material tooling limitation remained.\n\nThe two valid reference cases contain the specified velocity and viscosity substitutions, successful `blockMesh` and `checkMesh` evidence, SIMPLE convergence messages, final inlet/outlet area averages, and pressure metrics consistent with the stated formulas. Evaluation can follow CSV validation → independent case creation → parameter replacement → meshing → mesh validation → steady solve → final pressure averaging → density conversion and coefficient calculation → exact-schema CSV comparison, including alternate hidden parameters. License keys, accounts, tokens, and other credentials are not required from the contributor. Confidential, proprietary, or internal material may be evaluated as submitted evidence without requiring additional disclosure.\n\n**Special Screening:**\n- `public_benchmark` — The template explicitly identifies its geometry as derived from OpenFOAM’s standard `pitzDaily` tutorial. The custom parameter sweep, invalid-input handling, calculated metrics, hidden alternate inputs, and evaluator-only reference substantially mitigate answer retrieval or hard-coding.\n\n**Recommended Changes:**\nThe core submission is valid and ready; no changes are required. Optional polish would be to remove the pre-generated mesh or describe the template as regeneratable, and to reject nonfinite numeric values explicitly.","reviewed_at":"2026-07-30T04:17:30.507474Z"},"claim":{"id":"df9a76ff-c3b2-4738-b177-4b6b0c0d1a93","submission_id":"3e22c287-8428-455f-b63d-91dd088c5d1e","submission_revision_id":"283f0cb6-9642-4132-8fd3-efc77ee7bd9b","builder":"builder-01","status":"active","claimed_at":"2026-10-15T14:43:01.922790Z","delivered_at":null,"ended_at":null,"delivery_note":null,"end_reason":null}},"revision_is_current":true}