diff options
| author | Claudius "keldu" Holeksa <mail@keldu.de> | 2026-07-01 00:15:41 +0200 |
|---|---|---|
| committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2026-07-01 00:15:41 +0200 |
| commit | 89b1992988569add71f3b2f858a38a001d141d3b (patch) | |
| tree | b4d4519bb6df9b1f91778484cd5bc361c9356a47 /lib/core/c++/psm.hpp | |
| parent | 53ecaeeee3a24c016b4fd3c6a577ac22ac47775a (diff) | |
| parent | 761e4912e14324ccf713b9309336816cd3283b38 (diff) | |
| download | libs-lbm-89b1992988569add71f3b2f858a38a001d141d3b.tar.gz | |
Merge branch 'dev'
Diffstat (limited to 'lib/core/c++/psm.hpp')
| -rw-r--r-- | lib/core/c++/psm.hpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/core/c++/psm.hpp b/lib/core/c++/psm.hpp index 3bd3520..6dc146f 100644 --- a/lib/core/c++/psm.hpp +++ b/lib/core/c++/psm.hpp @@ -40,7 +40,7 @@ public: auto& rho_f = macros.template get<"density">(); auto& vel_f = macros.template get<"velocity">(); - + saw::data<sch::Scalar<T>>& rho = rho_f.at(index); saw::data<sch::Vector<T,Descriptor::D>>& vel = vel_f.at(index); @@ -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; + } + } + + force = force * porous; } }; |
