MUKKUND SUNJII <[email protected]> writes: > Greetings, > > I am working on modifying the shallow water model in ex11 for the purpose of > my thesis. > > I wish to run a specific dam break scenario using this model. In the > scenario, the velocity fields of certain cells must be constrained. That is I > want to create an “artificial wall” inside the domain by constraining the > value [uh] to not change.
Why not make your unstructured mesh be the non-wall domain? That way you don't have to constrain cell values and you can (correctly) make the (reconstructed) zero velocity occur at the cell boundary rather than the cell interior. > For this purpose, I tried creating a separate label in the DM. Further, I > added the cells whose velocity values I wanted to constrain to the label > using the routine : DMLabelSetValue(labelWall, c, 100); > > Next, in the routine where the boundary conditions are set, I pass a separate > command : > > PetscDSAddBoundary(prob, DM_BC_ESSENTIAL, "wall", "DamWall", 0, 1, &comp, > (void (*)(void)) PhysicsBoundary_Dam_Wall, sizeof(damWallids), &damWallids, > phys); > > Ofcourse, in the function PhysicsBoundary_Dam_Wall() I set the vector value > of [uh] to 0. When I do run the program, I do not see any of this in play > (i.e., the values are not being constrained). > > Is there a smarter way to go about this or would you suggest a correction in > my current method? > > Thank you in advance for your wonderful suggestions and work! > > Regards, > > Mukkund Sunjii
