17#ifndef PARTICLE_INITIAL_CONDITIONS_H
18#define PARTICLE_INITIAL_CONDITIONS_H
PetscErrorCode PicurvExpressionEvaluate(const PicurvExpression *expression, const PetscReal *values, const PicurvExpressionDrawKey *key, PetscReal *result)
Evaluate a compiled expression.
PetscErrorCode PicurvExpressionDestroy(PicurvExpression **expression)
Free a compiled expression.
PetscErrorCode ParticleFieldPlanCreate(ParticleFieldPlan **plan)
Read a plan from the options database.
PetscErrorCode ParticleFieldPlanSummarize(UserCtx *user, const ParticleFieldPlan *plan)
Log and record the realized initial values of every planned field.
PetscInt64 pid
Particle identity; draws are pure functions of it.
PetscInt64 salt
Event identity keying random draws: 0 for the t=0 population.
PetscErrorCode ParticleFieldPlanDestroy(ParticleFieldPlan **plan)
Free a plan and its compiled expressions.
PetscErrorCode PicurvExpressionCompile(const char *text, const char *const *names, PetscInt name_count, PetscBool allow_random, PicurvExpression **expression)
Compile one expression against a list of variable names.
PetscInt64 salt
Event that produced the particle: 0 for the t=0 population.
PetscInt64 field
Field whose expression draws, the default stream's namespace.
PetscErrorCode ParticleFieldPlanApply(UserCtx *user, const ParticleFieldPlan *plan, const ParticleFieldEvent *event, PetscInt first, PetscInt end)
Write the plan's values into swarm entries [first, end) of this rank.
PetscReal physical_time
Time, in seconds, the evaluated particles appear at.
PetscInt64 seed
Run seed (-particle_random_seed).
When and why a plan is applied.
What a random draw is keyed on, besides the particle and its stream.
Typed identities and metadata for persistent solver-particle fields.
Main header file for a complex fluid dynamics solver.
User-defined context containing data specific to a single computational grid level.