Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
1fb7ede
Update latest fixed point changes
mattfalcone1997 Jul 11, 2025
0391a3b
Implement initial maybe working implementation
mattfalcone1997 Jul 16, 2025
c43c642
Update backup so it is placed in the FoamSolver class
mattfalcone1997 Jul 21, 2025
a1e01e8
Update checkField to use method as the storeField functions
mattfalcone1997 Jul 21, 2025
cb26764
Remove some asserts from FoamSolver
mattfalcone1997 Aug 4, 2025
ec82603
Allow any OpenFOAM solver to be used inHippo
mattfalcone1997 Aug 7, 2025
778cc67
Use new approach to copy OpenFOAM field data
mattfalcone1997 Aug 7, 2025
afa732a
Clean up unused functions
mattfalcone1997 Aug 7, 2025
b088994
Move DataStore to separate file and move to problem
mattfalcone1997 Aug 7, 2025
d0dd8d4
Add placeholder implementation of reconverable data with field read n…
mattfalcone1997 Aug 7, 2025
bf1cb20
Initial implementation of dataStore and dataLoad
mattfalcone1997 Aug 8, 2025
06a0242
Implement dataStore/dataload as template
mattfalcone1997 Aug 8, 2025
0d47839
Add serialisation/deserialisation for old time fields
mattfalcone1997 Aug 11, 2025
f705bb8
Update exodus data reader to removed deprecation warning
mattfalcone1997 Aug 11, 2025
e1edb09
Add serial unsteady heat conduction test for fixed point
mattfalcone1997 Aug 11, 2025
c901084
Implement simplified backup and restore
mattfalcone1997 Aug 12, 2025
3418987
Fix simplified implementation
mattfalcone1997 Aug 13, 2025
6dd1c88
Remove uneeded FoamDataStore class
mattfalcone1997 Aug 13, 2025
be766c1
simplify further dataStore/dataLoad templates
mattfalcone1997 Aug 13, 2025
63bb028
Update field output method for testing
mattfalcone1997 Aug 14, 2025
64ff1b1
Ensure new method gives same result as previous
mattfalcone1997 Aug 14, 2025
89d09f7
Optional allow storing of derived types
mattfalcone1997 Aug 14, 2025
00732e1
implement minor improvements to dataStore
mattfalcone1997 Aug 15, 2025
a42f98a
Ensure dataStore stream can fully hold double precision
mattfalcone1997 Aug 15, 2025
83c8b7c
Rremove unnecessary implementations of preBackup and postRestore
mattfalcone1997 Aug 15, 2025
33fc8ba
Add initial implementation of OpenFOAM test modules for fixed-point i…
mattfalcone1997 Aug 15, 2025
a834713
Fix Crank-Nicolson fixed-point for the internal fields
mattfalcone1997 Aug 18, 2025
800b5a1
Implement simple function test for fixed-point
mattfalcone1997 Aug 18, 2025
a047da0
Add laplacian fixed-value fixed-point test
mattfalcone1997 Aug 19, 2025
44eca80
Add laplacian fixed-gradient fixed-point test
mattfalcone1997 Aug 19, 2025
e3ef21d
Add ODE backward euler fixed-point test
mattfalcone1997 Aug 19, 2025
fc45e5d
Add ODE Crank Nicolson fixed-point test
mattfalcone1997 Aug 19, 2025
184e3c4
Redo unsteady heat conduction test for fixed-point
mattfalcone1997 Aug 20, 2025
56dca58
Add unsteady fixed-point test with subcycling
mattfalcone1997 Aug 20, 2025
1676582
Add unsteady test with variable time step
mattfalcone1997 Aug 20, 2025
a695ab4
Update function test with time derivative to first step issue
mattfalcone1997 Sep 10, 2025
00b47e4
Add storing of uniformed dimensioned fields
mattfalcone1997 Sep 10, 2025
d919a18
Remove redundant code from DataStore routines
mattfalcone1997 Sep 10, 2025
9e23db6
Update gitignore
mattfalcone1997 Sep 10, 2025
141ec7d
Revert tests to using Euler due to issues on the first step with Cran…
mattfalcone1997 Sep 10, 2025
e795217
Update dataStore header with more comments
mattfalcone1997 Sep 10, 2025
2c98b7a
Move datastore header to mesh folder
mattfalcone1997 Sep 10, 2025
94bb2f3
Add readme to explain philosophy of the fixed-point testing
mattfalcone1997 Sep 10, 2025
536d852
Add comments to the test solvers
mattfalcone1997 Sep 10, 2025
9a7547e
Explicitly backup field values at the boundary
mattfalcone1997 Oct 20, 2025
54cbfe3
Allow OpenFOAM test solvers to be built from make
mattfalcone1997 Oct 21, 2025
5e9e5d9
Add parallel flow over heated plate test with buoyancy effects
mattfalcone1997 Oct 21, 2025
33497b4
Add regression test for unsteady case with fixed-point
mattfalcone1997 Oct 22, 2025
19bc0e1
Add restart test for fixed-point
mattfalcone1997 Oct 22, 2025
b5b0736
Add a restep test for fixed-point iteration
mattfalcone1997 Oct 22, 2025
e762558
Update lib location for OpenFOAM test solvers
mattfalcone1997 Oct 22, 2025
35aef42
Enable fixed-point iteration to run with Crank Nicolson sceheme
mattfalcone1997 Oct 23, 2025
630f5cf
Get CrankNicolson scheme to seemingly work
mattfalcone1997 Oct 23, 2025
3c14801
Add flow over heated plate regression test
mattfalcone1997 Oct 27, 2025
3e88242
Add regression test for restart with flow over heated plate
mattfalcone1997 Oct 28, 2025
061a005
Make unsteady 1D restart/restep test cases only a restep test
mattfalcone1997 Oct 28, 2025
3dd4cd2
Update unsteady 1D fixed-point tests to use Crank-Nicolson scheme
mattfalcone1997 Oct 29, 2025
39823b1
Remove redundant comments and output from back up and restore
mattfalcone1997 Oct 29, 2025
891edbe
Stop moose trimming output on error
mattfalcone1997 Oct 29, 2025
9ed8423
Use new regression test data for fixed-point
mattfalcone1997 Oct 30, 2025
938251f
Test without flow over heated plate on CI without exodiff
mattfalcone1997 Oct 30, 2025
a304fcd
Test flow over heated plate regression with two processors
mattfalcone1997 Oct 30, 2025
84af19d
Change relative error on regression tests
mattfalcone1997 Oct 30, 2025
19c4d6b
Reduce tolerances on heated plate fixed-point test
mattfalcone1997 Oct 30, 2025
922043e
Adjust python test tolerance for fixed-point
mattfalcone1997 Oct 30, 2025
42ee5d6
Run reference case before heated plate test
mattfalcone1997 Oct 30, 2025
97f8f39
Update tolerance for heated plate regression test python unit test
mattfalcone1997 Oct 30, 2025
d8f4105
Use converge test results as reference for restart data
mattfalcone1997 Oct 30, 2025
9cb73be
Use smaller time step on regression test to prevent error in docker c…
mattfalcone1997 Oct 30, 2025
d745927
Update code after initial review
mattfalcone1997 Nov 12, 2025
7cf3fcd
Merge branch 'main' into implement_backup_and_restore
mattfalcone1997 Nov 12, 2025
d434b26
Update fixed point tests to use new transfer system
mattfalcone1997 Nov 12, 2025
40904c9
Add debug code to print list of backed-up fields and mesh keys that a…
mattfalcone1997 Dec 23, 2025
b615244
Add comment to note about the differences in behaviour if CN is used
mattfalcone1997 Dec 23, 2025
f554af1
Eliminate use of static variable for storing field names for debugging
mattfalcone1997 Jan 8, 2026
1aeed39
Use MooseInfoRepeated for outputting debug information
mattfalcone1997 Jan 8, 2026
5b8b922
Add warning to explain potential issues with fixed-point at certain t…
mattfalcone1997 Jan 9, 2026
824025c
Remove unnecessary context passes in FoamDataStore
mattfalcone1997 Jan 9, 2026
73bc5e9
Update description for test solvers
mattfalcone1997 Jan 14, 2026
109eb76
Update fixed-point test README.md
mattfalcone1997 Jan 14, 2026
094345f
Apply comments from review and apply ruff formatter to python files
mattfalcone1997 Jan 14, 2026
a7d0642
Allow tests to run with latest version of MOOSE
mattfalcone1997 Jan 14, 2026
d6c54dc
Update OpenFOAM test modules to remove unnecessary member function
mattfalcone1997 Jan 14, 2026
5649549
Remove unused member functions from FoamSolver.h
mattfalcone1997 Jan 14, 2026
15ca035
Remove tar.gz files from small fixed-point tests by running the
mattfalcone1997 Jan 14, 2026
8fa0e50
Fix capitalisation on test input file
mattfalcone1997 Jan 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
run: |
. /opt/openfoam/OpenFOAM-12/etc/bashrc || true
unset FOAM_SIGFPE && unset FOAM_SETNAN
./run_tests
./run_tests --no-trimmed-output-on-error

- name: Docs
shell: bash
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ test/**/*.obj

# downloaded mesh tarballs
test/tests/**/*.tar.gz
!**/gold/*.tar.gz

# OpenFOAM build files
test/OpenFOAM/**/lnInclude
Expand Down Expand Up @@ -274,3 +275,7 @@ conf_vars.mk
# GPerf performance
*.prof
*.heap

#OpenFOAM wmake build files
**/lnInclude
**/Make/linux*
3 changes: 0 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,4 @@ include $(FRAMEWORK_DIR)/app.mk
###############################################################################
# Additional special case targets should be added here

# Add foam modules
# TODO: Reorganise build: consider single mk for all OpenFOAM modules
# as they are written.
include test/OpenFOAM/foam_modules.mk
18 changes: 9 additions & 9 deletions doc/content/hit/step_by_step/fluid.i
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,25 @@
foam_patch = 'interface' # the name of the coupled boundary
[]

[AuxVariables]
[FoamVariables]
[fluid_wall_temp]
family = MONOMIAL
order = CONSTANT
type = FoamVariableField
foam_variable = 'T'
initial_condition = 300
[]
[]

[FoamBCs]
[solid_heat_flux]
family = MONOMIAL
order = CONSTANT
type = FoamFixedGradientBC
foam_variable = 'T'
diffusivity_coefficient = kappa
initial_condition = 0
[]
[]

[Problem]
type = FoamProblem
# Take the heat flux from MOOSE and set it on the OpenFOAM mesh.
heat_flux = solid_heat_flux
# Take the boundary temperature from OpenFOAM and set it on the MOOSE mesh.
foam_temp = fluid_wall_temp
[]

[Executioner]
Expand Down
12 changes: 9 additions & 3 deletions include/base/FoamSolver.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
#pragma once

#include "fvMesh.H"
#include "scalar.H"
#include "solver.H"
#include "functionObject.H"

#include <vector>
#include <Time.H>
#include <TimeState.H>
#include <filesystem>

namespace fs = std::filesystem;

namespace Foam
{
Expand Down Expand Up @@ -36,7 +42,6 @@ class mooseDeltaT : public functionObject

namespace Hippo
{

class FoamSolver
{
public:
Expand Down Expand Up @@ -64,12 +69,13 @@ class FoamSolver
// time step is.
void appendDeltaTFunctionObject(const Foam::scalar & dt);
// get the current deltaT.
Foam::scalar getTimeDelta() { return runTime().deltaTValue(); };
Foam::scalar getTimeDelta() const { return runTime().deltaTValue(); }

private:
Foam::solver * _solver = nullptr;

Foam::Time & runTime() { return const_cast<Foam::Time &>(_solver->runTime); }
const Foam::Time & runTime() const { return _solver->runTime; }
};

} // namespace Hippo
11 changes: 11 additions & 0 deletions include/base/foam/fvCFD_moose.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,15 @@
#include <argList.H>
#include <fvMesh.H>

// FoamDataStore.h
#include <error.H>
#include <surfaceFields.H>
#include <volFields.H>
#include <pointFields.H>
#include <typeInfo.H>
#include <symmTensorField.H>
#include <DimensionedField.H>
#include <uniformDimensionedFields.H>
#include <ddtScheme.H>

#undef NotImplemented
9 changes: 0 additions & 9 deletions include/base/hippoApp.h
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
//* This file is part of the MOOSE framework
//* https://www.mooseframework.org
//*
//* All rights reserved, see COPYRIGHT for full restrictions
//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
//*
//* Licensed under LGPL 2.1, please see LICENSE for details
//* https://www.gnu.org/licenses/lgpl-2.1.html

#pragma once

#include <MooseApp.h>
Expand Down
Loading