get_properties() const;
/**
- * @deprecated: This function is only kept for backward compatibility
+ * Tell the particle where to store its properties (even if it does not
+ * own properties). Usually this is only done once per particle, but
+ * since the particle generator does not know about the properties
+ * we want to do it not at construction time. Another use for this
+ * function is after particle transfer to a new process.
+ *
+ * @deprecated This function is only kept for backward compatibility
* and has no meaning any more. ParticleAccessors always use the
* property pool of the owning particle handler.
*/
+ DEAL_II_DEPRECATED_EARLY
void
set_property_pool(PropertyPool<dim, spacedim> &property_pool);
get_surrounding_cell() const;
/**
- * @deprecated: Deprecated version of the function with the same
+ * @deprecated Deprecated version of the function with the same
* name above.
*/
- DEAL_II_DEPRECATED
+ DEAL_II_DEPRECATED_EARLY
const typename Triangulation<dim, spacedim>::cell_iterator &
get_surrounding_cell(
const Triangulation<dim, spacedim> &triangulation) const;
template <int dim, int spacedim>
inline void
ParticleAccessor<dim, spacedim>::set_property_pool(
- PropertyPool<dim, spacedim> & /*new_property_pool*/)
+ PropertyPool<dim, spacedim> &new_property_pool)
{
- /* nothing to do */
+ Assert(&new_property_pool = property_pool, ExcInternalError());
+ (void)new_property_pool;
}
* we call particles in the domain of the local process local particles,
* and particles that belong to neighbor processes and live in the ghost cells
* around the locally owned domain "ghost particles". The class also includes
- * functionality that is similar to the DoFHandler() class (it knows which
- * particles live on which cells) and the SolutionTransfer() class (it know
+ * functionality that is similar to the DoFHandler class (it knows which
+ * particles live on which cells) and the SolutionTransfer class (it knows
* how to transfer particles between cells and subdomains).
*
- * @note: While the class can be used in any kind of triangulation, transfer
- * of particles during mesh refinement is currently only implemented for
- * distributed triangulations. You can still use the class for serial
- * triangulations, but you cannot change the mesh while particles
- * exist inside the particle handler.
- *
* For examples on how to use this class to track particles, store properties
* on particles, and let the properties on the particles influence the
* finite-element solution see step-19, step-68, and step-70.
virtual ~ParticleHandler();
/**
- * Initialize the particle handler. This function does clear the
+ * Initialize the particle handler. This function clears the
* internal data structures, and sets the triangulation and the
* mapping to be used.
*/
&load_callback);
/**
- * Return the total number of particles that are managed by this class
+ * Return the total number of particles that were managed by this class
* the last time the update_cached_numbers() function was called.
* The actual number of particles may have changed since then if
* particles have been added or removed.
const bool enable_cache = false);
/**
- * Transfer ghost particles position and properties assuming that
+ * Transfer ghost particles' position and properties assuming that
* the particles have not changed cells. This routine uses the
* GhostParticlePartitioner as a caching structure to know which particles
- * are ghost to other processes, and where they need to be send.
+ * are ghost to other processes, and where they need to be sent.
* It inherently assumes that particles cannot have changed cell.
*
* @param [in] particles_to_send All particles for which information