I’d like to develop a fish migiration model within openfoam. The fish always swim against water flow towards upstream. Where and which solver should I get started?

OpenFOAM is a powerful open-source computational fluid dynamics (CFD) tool, but modeling fish migration will be quite complex as you would need to account for both the fluid dynamics and the biological behavior of the fish.

Here are some steps you could take:

  1. Choosing a Solver: For such a problem, you would likely need to modify an existing solver or even write a new one. The appropriate solver would likely be a multiphase solver, such as interFoam, icoFoam, or a species transport solver like scalarTransportFoam. However, these solvers don’t possess the inherent ability to simulate fish migration. Extra coding is required for this functionality.
  2. Fish Model: You would need to write an additional coarse-grain model (a group of fish considered as a single entity) or fine-grain model (each fish modeled individually) for the fish migration. The decision between the two will rely on what level of detail you want in the simulation.
  3. Coding: OpenFOAMallows low-level modification due to its open-source nature. You’ll have to write C++ code to model your fish’s behavior.
  4. Understanding the Environment: This includes understanding how the fluid dynamics of the water in your particular environment operates, as well as the behavior of the species of fish you are modeling.
  5. Boundary Conditions: Understand the inlet and outlet conditions, and the boundaries of the model.
  6. Validation: The model would require validation against experimental or field data to confirm its accuracy.

Lastly, You may want to check out existing related models like ‘Lagrangian Particle Dispersion’ models. A popular group of models in this category are OpenFOAM’s Lagrangian/intermediate models (formerly Cloud function objects). However, most of the “particle” models track non-reacting, passive particles.

Remember, your task is complex, and you may want to collaborate with experienced OpenFOAM users or seek professional help.

4690 Token

Sounds good. Any idea to model the swimming motive force and the reaction to water flow of fish?

Modeling the interaction between fish and the water flow can be a challenging task because it involves complex fluid-structure interactions. Here are a few ideas to model the swimming motive force and reaction to water flow of fish:

  1. Biorobotic Models: These models make use of bio-inspired robotic mechanisms to observe swimming behaviors. In this approach, you can couple your model with an external function or rule that simulates the fish’s response to different flows. These rules can be empirical or based on observations or experiments.
  2. Behavioral Models: These models directly incorporate fish behavior into the model. This can be achieved by making the fish’s movement a function of the surrounding water velocity. The velocity of fish can be defined as the sum of water flow velocity and the swimming velocity of the fish against the current.
  3. Force Models: You need to consider the forces acting on the fish, which include buoyancy, drag, and the fish’s own propulsive force. The propulsive force can be modeled using data from studies of actual fish swimming. The other forces can be modeled using principles from fluid mechanics.
  4. Agent-Based Models (ABMs): Individual fish are modeled as agents and their behavior is programmed into the model. This provides a high level of detail but can be computationally expensive.
  5. CFD-Based Models: These use governing equations of fluid dynamics and some numerical methods, such as finite volume method. Here, the fluid domain is discretized into numerous small volumes. For each finite volume a mass and momentum conservation equations are solved.

Remember, you need to balance out the complexity and computational cost of the models. You might choose to simplify certain aspects of your model or make assumptions in order to make your problem manageable. Also, all these models need validation with experimental data to confirm their accuracy.

Good Job. I prefer to treat the fish as lagrangian coarse-grain and use force models. Is there any formula in literature for this case?

Yes, Lagrangian Coarse-Grained models are often used to simulate the behavior of individual organisms in a fluid environment. In this context, the fish is treated as a point in the flow field, and a force balance equation is used to determine the fish’s movement.

Given that you prefer using force models, you have to take into consideration three main forces acting on the fish. These are:

  1. Drag Force (Fd): This is the resistance force in the direction of motion due to the water. It can be calculated using the drag equation: Fd = 0.5CdρAv^2 where Cd is the drag coefficient, ρ is the fluid density, A is the projected area of the fish and v is the velocity.
  2. Buoyancy Force (Fb): This force keeps the fish afloat and can be calculated using Archimedes’ principle: Fb = ρVg where V is the volume of the fish and g is acceleration due to gravity.
  3. Thrust Force (Ft): This is the propulsive force generated by the fish to move forward. It can be estimated from studies of fish muscle dynamics and kinematics.

The sum of these forces is set equal to the mass of the fish times its acceleration (F=ma), giving us a second-order ordinary differential equation that governs the position of the fish.

Please note that the specific values for these forces, especially the thrust, are often unknown and must be estimated or based on empirical data. This is often one of the main hurdles to overcome when creating a Lagrangian model to simulate fish movement in a flow field.


作者: 常恭

略懂 OpenFOAM