www.mooseframework.org
Functions
Assembly.C File Reference

Go to the source code of this file.

Functions

template<typename P , typename C >
void coordTransformFactor (const SubProblem &s, const SubdomainID sub_id, const P &point, C &factor, const SubdomainID neighbor_sub_id)
 Computes a conversion multiplier for use when computing integraals for the current coordinate system type. More...
 
template<typename P , typename C >
void coordTransformFactor (const MooseMesh &mesh, const SubdomainID sub_id, const P &point, C &factor, const SubdomainID libmesh_dbg_var(neighbor_sub_id))
 
template void coordTransformFactor< Point, Real > (const SubProblem &s, SubdomainID sub_id, const Point &point, Real &factor, SubdomainID neighbor_sub_id)
 
template void coordTransformFactor< ADPoint, ADReal > (const SubProblem &s, SubdomainID sub_id, const ADPoint &point, ADReal &factor, SubdomainID neighbor_sub_id)
 
template void coordTransformFactor< Point, Real > (const MooseMesh &mesh, SubdomainID sub_id, const Point &point, Real &factor, SubdomainID neighbor_sub_id)
 
template void coordTransformFactor< ADPoint, ADReal > (const MooseMesh &mesh, SubdomainID sub_id, const ADPoint &point, ADReal &factor, SubdomainID neighbor_sub_id)
 

Function Documentation

◆ coordTransformFactor() [1/2]

template<typename P , typename C >
void coordTransformFactor ( const SubProblem s,
SubdomainID  sub_id,
const P &  point,
C &  factor,
SubdomainID  neighbor_sub_id = libMesh::Elem::invalid_subdomain_id 
)

Computes a conversion multiplier for use when computing integraals for the current coordinate system type.

This allows us to handle cases where we use RZ, spherical, or other non-cartesian coordinate systems. The factor returned by this function should generally be multiplied against all integration terms. Note that the computed factor is particular to a specific point on the mesh. The result is stored in the factor argument. point is the point at which to compute the factor. point and factor can be either Point and Real or ADPoint and ADReal.

Definition at line 39 of file Assembly.C.

Referenced by MooseMesh::computeFiniteVolumeCoords(), Assembly::elementVolume(), and Assembly::setCoordinateTransformation().

44 {
45  coordTransformFactor(s.mesh(), sub_id, point, factor, neighbor_sub_id);
46 }
virtual MooseMesh & mesh()=0
void coordTransformFactor(const SubProblem &s, const SubdomainID sub_id, const P &point, C &factor, const SubdomainID neighbor_sub_id)
Computes a conversion multiplier for use when computing integraals for the current coordinate system ...
Definition: Assembly.C:39

◆ coordTransformFactor() [2/2]

template<typename P , typename C >
void coordTransformFactor ( const MooseMesh mesh,
const SubdomainID  sub_id,
const P &  point,
C &  factor,
const SubdomainID   libmesh_dbg_varneighbor_sub_id 
)

Definition at line 50 of file Assembly.C.

55 {
56  mooseAssert(neighbor_sub_id != libMesh::Elem::invalid_subdomain_id
57  ? mesh.getCoordSystem(sub_id) == mesh.getCoordSystem(neighbor_sub_id)
58  : true,
59  "Coordinate systems must be the same between element and neighbor");
60  const auto coord_type = mesh.getCoordSystem(sub_id);
61 
62  if (coord_type == Moose::COORD_RZ)
63  {
64  if (mesh.usingGeneralAxisymmetricCoordAxes())
65  {
66  const auto & axis = mesh.getGeneralAxisymmetricCoordAxis(sub_id);
68  }
69  else
71  point, factor, coord_type, mesh.getAxisymmetricRadialCoord());
72  }
73  else
75 }
const unsigned int invalid_uint
void coordTransformFactor(const P &point, C &factor, const Moose::CoordinateSystemType coord_type, const unsigned int rz_radial_coord=libMesh::invalid_uint)
compute a coordinate transformation factor
MeshBase & mesh
void coordTransformFactorRZGeneral(const P &point, const std::pair< Point, RealVectorValue > &axis, C &factor)
Computes a coordinate transformation factor for a general axisymmetric axis.
static const subdomain_id_type invalid_subdomain_id

◆ coordTransformFactor< ADPoint, ADReal >() [1/2]

template void coordTransformFactor< ADPoint, ADReal > ( const SubProblem s,
SubdomainID  sub_id,
const ADPoint point,
ADReal factor,
SubdomainID  neighbor_sub_id 
)

◆ coordTransformFactor< ADPoint, ADReal >() [2/2]

template void coordTransformFactor< ADPoint, ADReal > ( const MooseMesh mesh,
SubdomainID  sub_id,
const ADPoint point,
ADReal factor,
SubdomainID  neighbor_sub_id 
)

◆ coordTransformFactor< Point, Real >() [1/2]

template void coordTransformFactor< Point, Real > ( const SubProblem s,
SubdomainID  sub_id,
const Point &  point,
Real factor,
SubdomainID  neighbor_sub_id 
)

◆ coordTransformFactor< Point, Real >() [2/2]

template void coordTransformFactor< Point, Real > ( const MooseMesh mesh,
SubdomainID  sub_id,
const Point &  point,
Real factor,
SubdomainID  neighbor_sub_id 
)