summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2026-07-08 17:32:37 +0200
committerClaudius "keldu" Holeksa <mail@keldu.de>2026-07-08 17:32:37 +0200
commitfe9fbe33df43ae9397c8cef311ff5f2f9afe8e1f (patch)
tree1cd2efb8bea00e8ea495e244ed25884cde56eef5 /modules
parent68c192ef581543d9e15bdae39599cc231b6abdaa (diff)
parente67393d7fcc6e9aa1dfe10e3a6a0d087b9621678 (diff)
downloadlibs-lbm-fe9fbe33df43ae9397c8cef311ff5f2f9afe8e1f.tar.gz
Merge branch 'dev'
Diffstat (limited to 'modules')
-rw-r--r--modules/core/c++/psm.hpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/modules/core/c++/psm.hpp b/modules/core/c++/psm.hpp
index 10e8f6e..30a00da 100644
--- a/modules/core/c++/psm.hpp
+++ b/modules/core/c++/psm.hpp
@@ -60,6 +60,22 @@ public:
uint64_t i_opp = dfi::opposite_index[i];
dfs.at({i}) = dfs_cpy.at({i}) + frequency_ * (eq.at(i) - dfs_cpy.at({i})) * porous.at({}) + (dfs_cpy.at({i_opp}) - dfs_cpy.at({i}) ) * flip_porous;
}
+
+ auto& force_f = macros.template get<"force">();
+ auto& force = force_f.at(index);
+ for(uint64_t k{0u}; k < Descriptor::D; ++k){
+ force.at({{k}}).set(0);
+ }
+
+ for(uint64_t i{0u}; i < Descriptor::Q; ++i){
+ uint64_t i_opp = dfi::opposite_index[i];
+ auto dfs_diff = dfs.at({i}) - dfs.at({i_opp});
+ for(uint64_t k{0u}; k < Descriptor::D; ++k){
+ force.at({{k}}) = force.at({{k}}) + dfs_diff * dfi::directions[i][k];
+ }
+ }
+
+ force = force * porous;
}
};