Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Sink Particle #413

Draft
wants to merge 103 commits into
base: main
Choose a base branch
from

Conversation

Anchewei
Copy link

Sink Particle

A new star formation criteria.

Creation

A sink particle is created only when the following checks are all passed (Federrath et al. 2010):

  1. The test cell's density is larger than the threshold controlled by SF_CREATE_SINK_MIN_GAS_DENS.
  2. The test cell is far away from any existing particle with a distance of two accretion radii, which is controlled by SF_CREATE_SINK_ACC_RADIUS.
  3. A second density threshold is checked for whether a gas cell will collapse before it reaches another particle (Clarke et al. 2017, eqn (5)).
  4. The test cell should have the minimum gravitational potential within the control volume defined by the accretion radius.
  5. The nearby six cells should converge toward the central (test) cell.
  6. The control volume is Jeans unstable with $$|E_{g, tot}| \geq 2E_{th, tot}$$.
  7. The control volume is bound with $$E_{th, tot} + E_{k, tot} + E_{mag, tot} \geq |E_{g, tot}|$$.

Note: a check considering whether some regions inside the control volume pass the above tests simultaneously is included.

Accretion

Once a sink particle is created, it can accrete gas from its surroundings in the sphere defined by SF_CREATE_SINK_ACC_RADIUS.
The cells in such sphere will go through the following checks (Federrath et al. 2010):

  1. The test cell's density is larger than the threshold controlled by SF_CREATE_SINK_MIN_GAS_DENS.
  2. The test cell is moving toward the central sink particle.
  3. The test cell is bound to the particle with $$|E_g| \geq E_k$$, where $$E_g$$ and $$E_k$$ are all with respect to the particle.
  4. Whether the test cell is most bound to the particle.

If the above tests are all passed, then the exceeded gas mass will be accreted by the particle, and particle's velocity will be also updated to ensure momentum conservation.

TestProblem - SinkParTest

A new TestProblem (SinkParTest) is added to test the particle creation and accretion.

New Parameters:

SF_CREATE_SINK_MIN_GAS_DENS: The minimum gas density allowed to form sink particles (count/cm^3) [1.0e10]
SF_CREATE_SINK_ACC_RADIUS: The accretion radius in cells at the highest refinement level [0.5*PATCH_SIZE]
SF_CREATE_SINK_MAX_NPAR_MPI: The maximum number of particles per MPI rank [100]
FB_ACC: Turn on particle accretion [0]. Note that SF_CREATE_SINK_MIN_GAS_DENS and SF_CREATE_SINK_ACC_RADIUS will be used.

Note

  1. FB_GHOST_SIZE = 8 is set.
  2. A custom EOS is used (CPU_EoS_Barotropic_SinkParTest.cpp).

Results

Column_Density_xy

@hyschive
Copy link
Contributor

@hsinhaoHHuang Please help review it. Since it's still draft, please focus on the key structure of this PR and ignore the details for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature particle Particles test Test problems
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants