<temperature field 0s.png><temperature field 2.18s.png><velocity field 2.18s.png>--
You received this message because you are subscribed to the Google Groups "IBAMR Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ibamr-users...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ibamr-users/35e82c32-eb61-4424-8c43-76f19e713ea1n%40googlegroups.com.
<temperature field 2.18s.png><temperature field 0s.png><velocity field 2.18s.png>
Dear Prof. Boyce Griffith
Many thanks for your useful suggestions, I have managed to add scalar in ConstraintIB/falling_sphere by referring IBAMR/examples/multiphase_flow/ex8.
Through reading the article on ConstraintIB method by Prof. Bhalla in 2013, I got that this falling_sphere case is a one-way coupling simulation, where the sphere is subject to
a net body force: −(ρ_sphere−ρ_fluid)/ρ_fluid⋅9.81, and fluid is not subject to any body force. Currently, I aim to implement a two-way coupling simulation, where the sphere is subject to
a body force: −ρ_sphere/
ρ_fluid⋅9.81, while the fluid is subject to a Boussinesq body force (GAMMA*T, T is the scalar concentration) like navier_stokes/ex6. Given these objectives, I would like to ask whether the ConstraintIB/falling_sphere is still a suitable case for such modifications? If so, would it be feasible to directly modify ConstraintIB/falling_sphere/ForceProjector.cpp by using a levelset function to define a mask distinguishing between fluid and solid regions—applying a body force of GAMMA * T in the fluid, while setting the force projector for the solid region in input3d as follows:
ForceProjector {
rho_fluid = RHO
rho_solid = rho_fluid
gravitational_constant = 0.0, -9.81*ρ_sphere/ ρ_fluid, 0.0
}
Would this approach be appropriate for implementing the desired two-way coupling?
Besides, I would also like to impose a homogeneous Neumann boundary condition for the scalar field at the fluid-solid interface. Would it be sufficient to define a level set variable and apply the following command as in adv_diff/ex8:
brinkman_adv_diff->registerHomogeneousBC(Temperature, levelset, "Neumann", indicator_function_type, num_of_interface_cells, eta);
to achieve this? Could the coupling with ConstraintIB pose any challenges or complications in setting this boundary condition?
As always, any help, advice, or recommendations would be very much appreciated.
Warm wishes,
Shuang Shan
On May 6, 2025, at 11:46 AM, Shuang Shan <shanshu...@gmail.com> wrote:Dear Prof. Boyce Griffith
Many thanks for your useful suggestions, I have managed to add scalar in ConstraintIB/falling_sphere by referring IBAMR/examples/multiphase_flow/ex8.
Through reading the article on ConstraintIB method by Prof. Bhalla in 2013, I got that this falling_sphere case is a one-way coupling simulation, where the sphere is subject to
a net body force: −(ρ_sphere−ρ_fluid)/ρ_fluid⋅9.81, and fluid is not subject to any body force. Currently, I aim to implement a two-way coupling simulation, where the sphere is subject to
a body force: −ρ_sphere/ ρ_fluid⋅9.81, while the fluid is subject to a Boussinesq body force (GAMMA*T, T is the scalar concentration) like navier_stokes/ex6.
Given these objectives, I would like to ask whether the ConstraintIB/falling_sphere is still a suitable case for such modifications? If so, would it be feasible to directly modify ConstraintIB/falling_sphere/ForceProjector.cpp by using a levelset function to define a mask distinguishing between fluid and solid regions—applying a body force of GAMMA * T in the fluid, while setting the force projector for the solid region in input3d as follows:
ForceProjector {
rho_fluid = RHO
rho_solid = rho_fluid
gravitational_constant = 0.0, -9.81*ρ_sphere/ ρ_fluid, 0.0
}Would this approach be appropriate for implementing the desired two-way coupling?
Besides, I would also like to impose a homogeneous Neumann boundary condition for the scalar field at the fluid-solid interface. Would it be sufficient to define a level set variable and apply the following command as in adv_diff/ex8:
brinkman_adv_diff->registerHomogeneousBC(Temperature, levelset, "Neumann", indicator_function_type, num_of_interface_cells, eta);
to achieve this? Could the coupling with ConstraintIB pose any challenges or complications in setting this boundary condition?
To view this discussion visit https://groups.google.com/d/msgid/ibamr-users/ef1976e1-feb9-40b7-af3a-a3387404d07dn%40googlegroups.com.
On May 21, 2025, at 7:45 AM, Shuang Shan <shanshu...@gmail.com> wrote:
Dear Prof. GriffithMany thanks for your suggestions. Sorry for the late reply.The problem was with the input file. The initial condition for Temperature should be TemperatureInitialConditions{function = "(X_0 - X_com)^2 + (X_1 - Y_com)^2 + (X_2 - Z_com)^2 <= R^2 ? 0.0 : 8+625*X_1" // X_com, Y_com and Z_com are the particle center x, y and z coordinate} instead of function = "8+625*X_1". When I changed the initial condition, the problem was solved. I had followed the method of adding adv_diff in IBFE before, but later I realized that the solid part of IBFE is a mesh of a specific shape, while ConstraintIB is only composed of Lagrangian points.When I try to study the physics of the falling sphere in the passive scalar field, I ran into two problems: (I have included the code link for clarity, please see https://drive.google.com/file/d/1NAhBpUxFwPArIBzaSvdvTLvHR73UszXk/view?usp=sharing https://drive.google.com/file/d/1dW2qYA-80oiTt568KYh2Glx2Acpz9YM0/view?usp=drive_link, it is almost the same as the initial post in this thread just modify the TemperatureInitialConditions in the input file):1. Scalar field error when increasing the resolution
I increase the resolution from CartesianGeometry {domain_boxes = [ (0,0,0) , (7, 31, 7) ]} to CartesianGeometry {domain_boxes = [ (0,0,0) , (15, 63, 15) ]}. Other parameters keeps unchanged (MAX_LEVELS = 3, level_1 = 4, 4, 4 // vector ratio to next coarser level, level_2 = 2, 2, 2). Plots 1 and 2 attached are velocity and scalar field at time = 0.4s in low and high resolution. In low resolution, both velocity and scalar fields overlap well with the Lagrangian markers (Plot 1).However, the scalar field obviously doesn't overlap with Lagrangian markers in high resolution (Plot 2). I have increased the resolution of the Lagrangian markers accordingly (sphere3d.vertex). I guess the problem may lie in the intermittent fragmented and disconnected finest level meshes, as shown in Plot 3. Does anyone have an explanation of what's going on, and more importantly on how to solve this? In addition, can I manually expand area of the Subset level 1 grid (the green region in Plot 3)? I hope the moving ball to always be at the finest level. Thank you so much.<Plot 1.png><Plot 2.png><Plot 3.png>
2. HDF5 error during the parallel simulations:When I run the built-in examples (e.g., IBFE, navier_stokes, ConstraintIB/falling_sphere, eel2d) using mpirun -np <processor number> ./main3d input3d command, everything works fine. However, the parallel simulation for modified falling_sphere with adv_diff integrator failed. It works well when <processor number> = 1. Here is the error:
To view this discussion visit https://groups.google.com/d/msgid/ibamr-users/51b78f05-c56c-471d-8b51-acb28b332445n%40googlegroups.com.
<Plot 2.png><Plot 1.png><Plot 3.png>