Skip to content

Remove Levelset and Levelset Norm Arrays #1011

@danieljvickers

Description

@danieljvickers

The levelset array stores an array that is the distance of any cell center to the outside of an immersed boundary. The levelset_norm array stores the direction from the cell center to outside of the cell array. We compute this for every point, meaning that there are 4 x m x n x p x num_ibs storage precision variables being saved in memory. It is significantly more memory efficient to store these values for each ghost point instead, which will significantly improve our memory performance.

I propose adding a levelset and levelset _norm(1:3) variable to the ghost points, recalculating the levelset in the array that generates the ghost points, and deleting the levelset and levelset_nrom arrays from memory entirely. This will simplify every function in the compute_levelset module, reduce our memory footprint for every simulation that uses IBs, and simplify the optimization process for the MIBM method. At the same time, it will mean that we don't have to pass the levelset and levelset_norm arrays between the pre_process and simulation steps, since they will get generated at startup of simulation and only be updated if we have a MIBM perform a time step. Afterwards, we can move the m_compute_levelset.fpp file from common, which will be convenient for reducing the pre_process compile time slightly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions