Skip to content

Commit 89903c7

Browse files
committed
Additional accessors
Providing something with an explicit return value rather than a return-in-argument style should make app compatibility conversions easier.
1 parent a235157 commit 89903c7

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

include/systems/fem_context.h

+36
Original file line numberDiff line numberDiff line change
@@ -224,18 +224,33 @@ class FEMContext : public DiffContext
224224
template<typename OutputShape>
225225
void get_element_fe( unsigned int var, FEGenericBase<OutputShape> *& fe ) const;
226226

227+
/**
228+
* Accessor for interior finite element object for scalar-valued variable var.
229+
*/
230+
FEBase* get_element_fe( unsigned int var ) const;
231+
227232
/**
228233
* Accessor for edge/face (2D/3D) finite element object for variable var.
229234
*/
230235
template<typename OutputShape>
231236
void get_side_fe( unsigned int var, FEGenericBase<OutputShape> *& fe ) const;
232237

238+
/**
239+
* Accessor for side finite element object for scalar-valued variable var.
240+
*/
241+
FEBase* get_side_fe( unsigned int var ) const;
242+
233243
/**
234244
* Accessor for edge (3D only!) finite element object for variable var.
235245
*/
236246
template<typename OutputShape>
237247
void get_edge_fe( unsigned int var, FEGenericBase<OutputShape> *& fe ) const;
238248

249+
/**
250+
* Accessor for edge finite element object for scalar-valued variable var.
251+
*/
252+
FEBase* get_edge_fe( unsigned int var ) const;
253+
239254
/**
240255
* Returns the value of the solution variable \p var at the quadrature
241256
* point \p qp on the current element interior. This is the preferred API.
@@ -770,6 +785,13 @@ void FEMContext::get_element_fe( unsigned int var, FEGenericBase<OutputShape> *&
770785
fe = libmesh_cast_ptr<FEGenericBase<OutputShape>*>( _element_fe_var[var] );
771786
}
772787

788+
inline
789+
FEBase* FEMContext::get_element_fe( unsigned int var ) const
790+
{
791+
libmesh_assert_less ( var, _element_fe_var.size() );
792+
return libmesh_cast_ptr<FEBase*>( _element_fe_var[var] );
793+
}
794+
773795
template<typename OutputShape>
774796
inline
775797
void FEMContext::get_side_fe( unsigned int var, FEGenericBase<OutputShape> *& fe ) const
@@ -778,6 +800,13 @@ void FEMContext::get_side_fe( unsigned int var, FEGenericBase<OutputShape> *& fe
778800
fe = libmesh_cast_ptr<FEGenericBase<OutputShape>*>( _side_fe_var[var] );
779801
}
780802

803+
inline
804+
FEBase* FEMContext::get_side_fe( unsigned int var ) const
805+
{
806+
libmesh_assert_less ( var, _side_fe_var.size() );
807+
return libmesh_cast_ptr<FEBase*>( _side_fe_var[var] );
808+
}
809+
781810
template<typename OutputShape>
782811
inline
783812
void FEMContext::get_edge_fe( unsigned int var, FEGenericBase<OutputShape> *& fe ) const
@@ -786,6 +815,13 @@ void FEMContext::get_edge_fe( unsigned int var, FEGenericBase<OutputShape> *& fe
786815
fe = libmesh_cast_ptr<FEGenericBase<OutputShape>*>( _edge_fe_var[var] );
787816
}
788817

818+
inline
819+
FEBase* FEMContext::get_edge_fe( unsigned int var ) const
820+
{
821+
libmesh_assert_less ( var, _edge_fe_var.size() );
822+
return libmesh_cast_ptr<FEBase*>( _edge_fe_var[var] );
823+
}
824+
789825

790826
} // namespace libMesh
791827

0 commit comments

Comments
 (0)