Commit 592dcc86 authored by GILLES Sebastien's avatar GILLES Sebastien

#1526 Update explanation about ghost Coords.

parent e84976b7
......@@ -85,11 +85,11 @@
</CommandLineArgument>
<CommandLineArgument
argument = "-i ${HOME}/Codes/MoReFEM/CoreLibrary/Sources/ModelInstances/Hyperelasticity/demo_initial.lua"
isEnabled = "YES">
isEnabled = "NO">
</CommandLineArgument>
<CommandLineArgument
argument = "-i ${HOME}/Codes/MoReFEM/CoreLibrary/Sources/ModelInstances/Hyperelasticity/demo_rerun.lua"
isEnabled = "NO">
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
</LaunchAction>
......
......@@ -97,7 +97,7 @@ namespace MoReFEM
/*!
* \brief Define a \a SpatialPoint in a mesh.
* \brief Define a \a SpatialPoint in a specific mesh.
*
* \todo #887 Should probably be advanced, but currently FindCoordsOfGlobalVector requires public and casual access
* to it. However this class was avoided in Poromechanics; I'll have to check whether the new mechanism would work
......
......@@ -543,19 +543,39 @@ namespace MoReFEM
*/
const GeometricElt::vector_shared_ptr& GetGeometricEltList() const noexcept;
//! Get the list of all \a Coords on the processor.
/*!
* \class doxygen_hide_processor_wise_and_ghost_coords
*
* What is the meaning of "processor_wise" and "ghost" for \a Coords?
*
* For a \a Dof, the "ghost" concept (relevant only for parallel runs) is clear cut:
* - If a \a Dof is handled primarily by the current processor, we call it "processor_wise".
* - If it is primarily handled by another processor BUT its value is nonetheless required on the current processor, we call it a "ghost". PETSc
* gets a whole mechanism to update these values (handled mostly automatically in \a GlobalVector in MoReFEM).
* - If a \a Dof is not relevant in any way on the current processor.... it is simply not there at all.
*
* Regarding \a Coords, the definition as such isn't so clear, but is nonetheless usefull:
* - A "processor_wise" \a Coords is a \a Coords directly related to a \a NodeBearer which bears a processor-wise \a Dof.
* - A "ghost" \a Coords is.... every odd \a Coords we need on the processor somehow but aren't related to a processor-wise \a Dof. For instance
* they might be:
* . A \a Coords related to a ghost \a Dof.
* . A \a Coords that forms a \a GeometricElt which is used in a \a DirichletBoundaryCondition.
*/
/*!
* \brief Get the list of all \a Coords on the processor.
*
* \copydoc doxygen_hide_processor_wise_and_ghost_coords
*/
const Coords::vector_shared_ptr& GetProcessorWiseCoordsList() const noexcept;
/*!
* \brief Get the list of the \a Coords that are solely related to ghosted \a NodeBearer.
* \brief Get the list of the ghost \a Coords.
*
* A model user shouldn't have to deal with that accessor at all; it is needed publicly for only two reasons:
* - To move the mesh: movemesh functionality must not forget to move these \a Coords as well. This is something
* purely internal to the library; model user just call FEltSpace::MoveMesh() method and the library takes care
* of everything.
* - In the test that check mesh movement is correct.
* \copydoc doxygen_hide_processor_wise_and_ghost_coords
*
* So to put in a nutshell: unless you are a core library develop that needs to tinker with those aspects, you
* So to put in a nutshell: unless you are a core library develop that needs to tinker with library aspects, you probably
* don't need this method!
*
* \return List of \a Coords.
......@@ -803,17 +823,13 @@ namespace MoReFEM
private:
//! List of all \a Coords on the processor.
//! \copydoc doxygen_hide_processor_wise_and_ghost_coords
Coords::vector_shared_ptr processor_wise_coords_list_;
/*!
* \brief List of \a Coords related ONLY to ghosted \a NodeBearer.
*
* Meaningless in sequential.
* \brief List of ghost \a Coords.
*
* One shouldn't give access to this data, which is purely practical: ghosted \a NodeBearer 's \a Interface
* needs access to all their \a Coords, and so we must keep track of those after the reduction to processor
* wise data. However, from the reduced mesh point of view these \a Coords should not be considered at all:
* another processor is in charge of them.
* \copydoc doxygen_hide_processor_wise_and_ghost_coords
*/
Coords::vector_shared_ptr ghosted_coords_list_;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment