Skip to content

Commit

Permalink
Merge pull request #337 from polyfem/fluids-fix
Browse files Browse the repository at this point in the history
Fluids fix
  • Loading branch information
teseoch committed May 30, 2024
2 parents aaa4c82 + 5a107f2 commit 62c05a7
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 4 deletions.
42 changes: 40 additions & 2 deletions src/polyfem/assembler/GenericProblem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,46 @@ namespace polyfem
{
if (assembler.is_fluid())
{
// TODO
assert(false);
for (int i = 0; i < 3; ++i)
{
rhs_[i].set_unit_type(units.force());
exact_[i].set_unit_type(units.velocity());
}
for (int i = 0; i < 3; ++i)
exact_grad_[i].set_unit_type("");

for (auto &v : displacements_)
v.set_unit_type(units.velocity());

for (auto &v : forces_)
v.set_unit_type(units.force());

for (auto &v : normal_aligned_forces_)
v.set_unit_type(units.pressure());

for (auto &v : pressures_)
v.set_unit_type(units.pressure());

for (auto &v : cavity_pressures_)
v.second.set_unit_type(units.pressure());

for (auto &v : initial_position_)
for (int i = 0; i < 3; ++i)
v.second[i].set_unit_type(units.velocity());

for (auto &v : initial_velocity_)
for (int i = 0; i < 3; ++i)
v.second[i].set_unit_type(units.velocity());

for (auto &v : initial_acceleration_)
for (int i = 0; i < 3; ++i)
v.second[i].set_unit_type(units.acceleration());

for (auto &v : nodal_dirichlet_)
v.second.set_unit_type(units.velocity());

for (auto &v : nodal_neumann_)
v.second.set_unit_type(units.force());
}
else
{
Expand Down
1 change: 1 addition & 0 deletions src/polyfem/assembler/NavierStokes.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ namespace polyfem::assembler
void add_multimaterial(const int index, const json &params, const Units &units) override;

bool is_fluid() const override { return true; }
bool is_tensor() const override { return true; }

void set_picard(const bool val) { full_gradient_ = !val; }

Expand Down
1 change: 1 addition & 0 deletions src/polyfem/assembler/Stokes.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ namespace polyfem::assembler
std::map<std::string, ParamFunc> parameters() const override;

bool is_fluid() const override { return true; }
bool is_tensor() const override { return true; }

private:
GenericMatParam viscosity_;
Expand Down
4 changes: 2 additions & 2 deletions src/polyfem/io/OutData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1630,7 +1630,7 @@ namespace polyfem::io
// interpolate_function(pts_index, rhs, fun, opts.boundary_only);
// writer.add_field("rhs", fun);

if (fun.cols() != 1)
if (fun.cols() != 1 && state.mixed_assembler == nullptr)
{
Eigen::MatrixXd traction_forces, traction_forces_fun;
compute_traction_forces(state, sol, t, traction_forces, false);
Expand All @@ -1649,7 +1649,7 @@ namespace polyfem::io
writer.add_field("traction_force", traction_forces_fun);
}

if (fun.cols() != 1)
if (fun.cols() != 1 && state.mixed_assembler == nullptr)
{
try
{
Expand Down

0 comments on commit 62c05a7

Please sign in to comment.