class
ALEALE Charm++ chare array used to perform arbitrary ALE mesh movement.
Contents
Constructors, destructors, conversion operators
- ALE(CkMigrateMessage*) explicit
- Migrate constructor.
Public functions
-
auto ALE(const tk::CProxy_ConjugateGradients& conjugategradientsproxy,
const std::array<std::vector<tk::
real>, 3>& coord, const std::vector<std::size_t>& inpoel, const std::vector<std::size_t>& gid, const std::unordered_map<std::size_t, std::size_t>& lid, const tk:: NodeCommMap& nodecommmap) -> ALE_SDAG_CODE explicit - Constructor.
- void solve(CkCallback c)
- Solve linear system to smooth ALE mesh velocity.
- auto converged() const -> bool
- Query the solution of the Conjugrate Gradients linear solver.
-
void start(const tk::
UnsMesh:: Coords vel, const std::vector<tk:: real>& soundspeed, CkCallback done, const std::array<std::vector<tk:: real>, 3>& coord, const tk:: UnsMesh:: Coords coordn, const std::vector<tk:: real>& vol0, const std::vector<tk:: real>& vol, const std::unordered_map<int, std::unordered_map<std::size_t, std::array<tk:: real, 4>>>& bnorm, std::size_t initial, std::size_t it, tk:: real t, tk:: real adt) - Start computing new mesh velocity for ALE mesh motion.
- auto meshvel() const -> const tk::Fields&
- Query the mesh velocity.
- void meshvelBnd(const std::map<int, std::vector<std::size_t>>& bface, const std::map<int, std::vector<std::size_t>>& bnode, const std::vector<std::size_t>& triinpoel)
- Query mesh velocity boundary conditions node lists and node list at which ALE moves boundaries.
-
void comvort(const std::vector<std::size_t>& gid,
const std::vector<std::array<tk::
real, 3>>& v) - Receive contributions to vorticity on chare-boundaries.
-
void comdiv(const std::vector<std::size_t>& gid,
const std::vector<tk::
real>& v) - Receive contributions to velocity divergence on chare-boundaries.
-
void compot(const std::vector<std::size_t>& gid,
const std::vector<std::array<tk::
real, 3>>& v) - Receive contributions to scalar potential gradient on chare-boundaries.
-
void comfor(const std::vector<std::size_t>& gid,
const std::vector<std::array<tk::
real, 3>>& w) - Receive contributions to ALE mesh force on chare-boundaries.
-
void meshvelbc(tk::
real maxv = 0.0) - Apply mesh velocity smoother boundary conditions for ALE mesh motion.
- void applied(CkDataMsg* msg = nullptr)
- Solve mesh velocity linear solve for ALE mesh motion.
- void solved(CkDataMsg* msg = nullptr)
- Mesh velocity smoother linear solver converged.
- void helmholtz(CkDataMsg* msg = nullptr)
- Compute the gradient of the scalar potential for ALE.
Pack/unpack (Charm++ serialization) routines
Function documentation
ALE_SDAG_CODE inciter:: ALE:: ALE(const tk::CProxy_ConjugateGradients& conjugategradientsproxy,
const std::array<std::vector<tk:: real>, 3>& coord,
const std::vector<std::size_t>& inpoel,
const std::vector<std::size_t>& gid,
const std::unordered_map<std::size_t, std::size_t>& lid,
const tk:: NodeCommMap& nodecommmap) explicit
Constructor.
Parameters | |
---|---|
conjugategradientsproxy in | Distributed Conjugrate Gradients linear solver proxy (bound to ALE proxy) |
coord in | Mesh node coordinates |
inpoel in | Mesh element connectivity |
gid in | Local->global node id map |
lid in | Global->locbal node id map |
nodecommmap |
bool inciter:: ALE:: converged() const
Query the solution of the Conjugrate Gradients linear solver.
Returns | Solution to the Conjugate Gradients linear solve |
---|
void inciter:: ALE:: start(const tk:: UnsMesh:: Coords vel,
const std::vector<tk:: real>& soundspeed,
CkCallback done,
const std::array<std::vector<tk:: real>, 3>& coord,
const tk:: UnsMesh:: Coords coordn,
const std::vector<tk:: real>& vol0,
const std::vector<tk:: real>& vol,
const std::unordered_map<int, std::unordered_map<std::size_t, std::array<tk:: real, 4>>>& bnorm,
std::size_t initial,
std::size_t it,
tk:: real t,
tk:: real adt)
Start computing new mesh velocity for ALE mesh motion.
Parameters | |
---|---|
vel in | Fluid velocity at mesh nodes |
soundspeed in | Speed of sound at mesh nodes |
done in | Function to continue with when mesh velocity has been computed |
coord in | Mesh node coordinates |
coordn in | Mesh node coordinates at the previous time step |
vol0 in | Nodal mesh volumes at t=t0 |
vol in | Nodal mesh volumes |
bnorm in | Face normals in boundary points associated to side sets |
initial in | Nonzero during the first time step stage, zero otherwise |
it in | Iteration count |
t in | Physics time |
adt in | alpha*dt of the RK time step |
void inciter:: ALE:: meshvelBnd(const std::map<int, std::vector<std::size_t>>& bface,
const std::map<int, std::vector<std::size_t>>& bnode,
const std::vector<std::size_t>& triinpoel)
Query mesh velocity boundary conditions node lists and node list at which ALE moves boundaries.
Parameters | |
---|---|
bface in | Boundary-faces mapped to side sets used in the input file |
bnode in | Boundary-node lists mapped to side sets used in input file |
triinpoel in | Boundary-face connectivity where BCs set |
void inciter:: ALE:: compot(const std::vector<std::size_t>& gid,
const std::vector<std::array<tk:: real, 3>>& v)
Receive contributions to scalar potential gradient on chare-boundaries.
Parameters | |
---|---|
gid in | Global mesh node IDs at which we receive contributions |
v in | Partial contributions to chare-boundary nodes |
void inciter:: ALE:: pup(PUP::er& p) override
Pack/Unpack serialize member function.
Parameters | |
---|---|
p in/out | Charm++'s PUP::er serializer object reference |