Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
MoReFEM
CoreLibrary
MoReFEM
Commits
1725273f
Commit
1725273f
authored
Jun 04, 2020
by
GILLES Sebastien
Browse files
#0 Fix indent.
parent
9d1ad42e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Sources/FiniteElement/BoundaryConditions/DirichletBoundaryConditionManager.hpp
View file @
1725273f
...
...
@@ -36,149 +36,149 @@ namespace MoReFEM
{
/// \addtogroup FiniteElementGroup
///@{
/// \addtogroup FiniteElementGroup
///@{
/*!
* \brief Singleton class which is aware of all essential boundary conditions that might be considered within
* a model.
*
* These conditions are defined in the input data file.
*/
class
DirichletBoundaryConditionManager
final
:
public
Utilities
::
Singleton
<
DirichletBoundaryConditionManager
>
{
public:
/*!
* \brief Singleton class which is aware of all essential boundary conditions that might be considered within
* a model.
*
* These conditions are defined in the input data file.
*/
class
DirichletBoundaryConditionManager
final
:
public
Utilities
::
Singleton
<
DirichletBoundaryConditionManager
>
{
//! Return the name of the class.
static
const
std
::
string
&
ClassName
();
public:
//! Base type of DirichletBoundaryCondition as input parameter (requested to identify domains in the input parameter data)
.
using
input_data_type
=
InputDataNS
::
BaseNS
::
DirichletBoundaryCondition
;
//! Return the name of the class
.
static
const
std
::
string
&
ClassName
()
;
//! Base type of DirichletBoundaryCondition as input parameter (requested to identify domains in the input parameter data).
using
input_data_type
=
InputDataNS
::
BaseNS
::
DirichletBoundaryCondition
;
private:
/// \name Special members
///@{
private:
//! Destructor.
virtual
~
DirichletBoundaryConditionManager
()
override
;
//! \copydoc doxygen_hide_copy_constructor
DirichletBoundaryConditionManager
(
const
DirichletBoundaryConditionManager
&
rhs
)
=
delete
;
/// \name Special members
///@{
//! \copydoc doxygen_hide_move_con
structor
DirichletBoundaryConditionManager
(
DirichletBoundaryConditionManager
&&
rhs
)
=
delet
e
;
//! De
structor
.
virtual
~
DirichletBoundaryConditionManager
()
overrid
e
;
//! \copydoc doxygen_hide_copy_
affectation
DirichletBoundaryConditionManager
&
operator
=
(
const
DirichletBoundaryConditionManager
&
rhs
)
=
delete
;
//! \copydoc doxygen_hide_copy_
constructor
DirichletBoundaryConditionManager
(
const
DirichletBoundaryConditionManager
&
rhs
)
=
delete
;
//! \copydoc doxygen_hide_move_
affectation
DirichletBoundaryConditionManager
&
operator
=
(
DirichletBoundaryConditionManager
&&
rhs
)
=
delete
;
//! \copydoc doxygen_hide_move_
constructor
DirichletBoundaryConditionManager
(
DirichletBoundaryConditionManager
&&
rhs
)
=
delete
;
///@}
//! \copydoc doxygen_hide_copy_affectation
DirichletBoundaryConditionManager
&
operator
=
(
const
DirichletBoundaryConditionManager
&
rhs
)
=
delete
;
public:
//! \copydoc doxygen_hide_move_affectation
DirichletBoundaryConditionManager
&
operator
=
(
DirichletBoundaryConditionManager
&&
rhs
)
=
delete
;
///@}
/*!
* \brief Create a new DirichletBoundaryCondition object from the data of the input data file.
*
* \param[in] section Section dedicated to a BoundaryCondition in the
* input data file.
*
*/
template
<
class
DirichletBoundaryConditionSectionT
>
void
Create
(
const
DirichletBoundaryConditionSectionT
&
section
);
public:
//! Returns the number of boundary conditions.
unsigned
int
NboundaryCondition
()
const
noexcept
;
//! Get the boundary condition associated with \a unique_id.
//! \unique_id_param_in_accessor{DirichletBoundaryCondition}
const
DirichletBoundaryCondition
&
GetDirichletBoundaryCondition
(
unsigned
int
unique_id
)
const
noexcept
;
/*!
* \brief Create a new DirichletBoundaryCondition object from the data of the input data file.
*
* \param[in] section Section dedicated to a BoundaryCondition in the
* input data file.
*
*/
template
<
class
DirichletBoundaryConditionSectionT
>
void
Create
(
const
DirichletBoundaryConditionSectionT
&
section
);
//! Get the boundary condition associated with \a unique_id.
//! \unique_id_param_in_accessor{DirichletBoundaryCondition}
DirichletBoundaryCondition
&
GetNonCstDirichletBoundaryCondition
(
unsigned
int
unique_id
)
noexcept
;
//! Returns the number of boundary conditions.
unsigned
int
NboundaryCondition
()
const
noexcept
;
//! Get the boundary condition associated with \a unique_id
as a smart pointer
.
//! \unique_id_param_in_accessor{DirichletBoundaryCondition}
DirichletBoundaryCondition
::
shared_ptr
GetDirichletBoundaryCondition
Ptr
(
unsigned
int
unique_id
)
const
;
//! Get the boundary condition associated with \a unique_id.
//! \unique_id_param_in_accessor{DirichletBoundaryCondition}
const
DirichletBoundaryCondition
&
GetDirichletBoundaryCondition
(
unsigned
int
unique_id
)
const
noexcept
;
//! Get the boundary condition associated with \a
name
.
//! \
name
_param_in_accessor{DirichletBoundaryCondition}
const
DirichletBoundaryCondition
&
GetDirichletBoundaryCondition
(
const
std
::
string
&
name
)
const
noexcept
;
//! Get the boundary condition associated with \a
unique_id
.
//! \
unique_id
_param_in_accessor{DirichletBoundaryCondition}
DirichletBoundaryCondition
&
Get
NonCst
DirichletBoundaryCondition
(
unsigned
int
unique_id
)
noexcept
;
//! Get the boundary condition associated with \a
name
.
//! \
name
_param_in_accessor{DirichletBoundaryCondition}
DirichletBoundaryCondition
&
GetNonCs
tDirichletBoundaryCondition
(
const
std
::
string
&
name
)
noexcep
t
;
//! Get the boundary condition associated with \a
unique_id as a smart pointer
.
//! \
unique_id
_param_in_accessor{DirichletBoundaryCondition}
DirichletBoundaryCondition
::
shared_ptr
Ge
tDirichletBoundaryCondition
Ptr
(
unsigned
int
unique_id
)
cons
t
;
//! Get the boundary condition associated with \a name
as a smart pointer
.
//! \name_param_in_accessor{DirichletBoundaryCondition}
DirichletBoundaryCondition
::
shared_ptr
GetDirichletBoundaryCondition
Ptr
(
const
std
::
string
&
name
)
const
;
//! Get the boundary condition associated with \a name.
//! \name_param_in_accessor{DirichletBoundaryCondition}
const
DirichletBoundaryCondition
&
GetDirichletBoundaryCondition
(
const
std
::
string
&
name
)
const
noexcept
;
//! Access to the list of boundary conditions.
const
DirichletBoundaryCondition
::
vector_shared_ptr
&
GetList
()
const
noexcept
;
//! Get the boundary condition associated with \a name.
//! \name_param_in_accessor{DirichletBoundaryCondition}
DirichletBoundaryCondition
&
GetNonCstDirichletBoundaryCondition
(
const
std
::
string
&
name
)
noexcept
;
//! Get the boundary condition associated with \a name as a smart pointer.
//! \name_param_in_accessor{DirichletBoundaryCondition}
DirichletBoundaryCondition
::
shared_ptr
GetDirichletBoundaryConditionPtr
(
const
std
::
string
&
name
)
const
;
private:
//! Access to the list of boundary conditions.
const
DirichletBoundaryCondition
::
vector_shared_ptr
&
GetList
()
const
noexcept
;
/*!
*
* \copydetails doxygen_hide_boundary_condition_constructor_args
*/
void
Create
(
unsigned
int
unique_id
,
const
std
::
string
&
name
,
const
Domain
&
domain
,
const
Unknown
&
unknown
,
const
std
::
vector
<
double
>&
value_per_component
,
const
std
::
string
&
component
,
const
bool
is_mutable
,
const
bool
may_overlap
);
private:
private:
/// \name Singleton requirements.
///@{
/*!
*
* \copydetails doxygen_hide_boundary_condition_constructor_args
*/
void
Create
(
unsigned
int
unique_id
,
const
std
::
string
&
name
,
const
Domain
&
domain
,
const
Unknown
&
unknown
,
const
std
::
vector
<
double
>&
value_per_component
,
const
std
::
string
&
component
,
const
bool
is_mutable
,
const
bool
may_overlap
);
private:
/// \name Singleton requirements.
///@{
//! Constructor.
DirichletBoundaryConditionManager
()
=
default
;
//! Constructor.
DirichletBoundaryConditionManager
()
=
default
;
//! Friendship declaration to Singleton template class (to enable call to constructor).
friend
class
Utilities
::
Singleton
<
DirichletBoundaryConditionManager
>
;
///@}
//! Friendship declaration to Singleton template class (to enable call to constructor).
friend
class
Utilities
::
Singleton
<
DirichletBoundaryConditionManager
>
;
///@}
private:
private:
//! Register properly boundary condition in use.
//! \param[in] ptr Shared pointernton the new boundary condition to register.
void
RegisterDirichletBoundaryCondition
(
const
DirichletBoundaryCondition
::
shared_ptr
&
ptr
);
//! Register properly boundary condition in use.
//! \param[in] ptr Shared pointernton the new boundary condition to register.
void
RegisterDirichletBoundaryCondition
(
const
DirichletBoundaryCondition
::
shared_ptr
&
ptr
);
private:
private:
//! List of boundary conditions.
DirichletBoundaryCondition
::
vector_shared_ptr
boundary_condition_list_
;
//! List of boundary conditions.
DirichletBoundaryCondition
::
vector_shared_ptr
boundary_condition_list_
;
};
};
/*!
* \brief Clear the initial values of all essential boundary conditions.
*
* At the beginning of a model, boundary conditions are initialized with a value read in the input parameter
* file. This value is retained for homogeneous boundary condition, and modified for other cases; whichever
* the case the initial value is not needed anymore, as the storage is different in all cases. So it's possible
* to spare (very few) memory by dropping now unused values.
*/
void
ClearAllBoundaryConditionInitialValueList
();
/*!
* \brief Clear the initial values of all essential boundary conditions.
*
* At the beginning of a model, boundary conditions are initialized with a value read in the input parameter
* file. This value is retained for homogeneous boundary condition, and modified for other cases; whichever
* the case the initial value is not needed anymore, as the storage is different in all cases. So it's possible
* to spare (very few) memory by dropping now unused values.
*/
void
ClearAllBoundaryConditionInitialValueList
();
///@} // \addtogroup
///@} // \addtogroup
}
// namespace MoReFEM
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment