Skip to content

Commit c5c86ca

Browse files
authored
Merge pull request #566 from sebproell/more-pre-evaluate
Remove ElementType::pre_evaluate
2 parents 0a833fc + 4ac822e commit c5c86ca

File tree

54 files changed

+141
-671
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+141
-671
lines changed

src/contact/4C_contact_friction_node.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212

1313
#include "4C_contact_node.hpp"
1414

15+
#include <set>
16+
1517
FOUR_C_NAMESPACE_OPEN
1618

1719
namespace CONTACT

src/contact/4C_contact_line_coupling.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
#include "4C_mortar_coupling3d_classes.hpp"
1515

16+
#include <set>
17+
1618
FOUR_C_NAMESPACE_OPEN
1719

1820
namespace Mortar

src/core/comm/src/4C_comm_parobjectfactory.cpp

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -222,17 +222,13 @@ void Core::Communication::ParObjectFactory::initialize_elements(Core::FE::Discre
222222

223223
Core::LinAlg::allreduce_vector(localtypeids, globaltypeids, dis.get_comm());
224224

225-
std::set<Core::Elements::ElementType*>& ae = active_elements_[&dis];
226-
227225
// This is element specific code. Thus we need a down cast.
228-
229226
for (std::vector<int>::iterator i = globaltypeids.begin(); i != globaltypeids.end(); ++i)
230227
{
231228
ParObjectType* pot = type_map_[*i];
232229
Core::Elements::ElementType* eot = dynamic_cast<Core::Elements::ElementType*>(pot);
233230
if (eot != nullptr)
234231
{
235-
ae.insert(eot);
236232
int err = eot->initialize(dis);
237233
if (err) FOUR_C_THROW("Element Initialize returned err={}", err);
238234
}
@@ -244,27 +240,6 @@ void Core::Communication::ParObjectFactory::initialize_elements(Core::FE::Discre
244240
}
245241

246242

247-
/*----------------------------------------------------------------------*/
248-
/*----------------------------------------------------------------------*/
249-
void Core::Communication::ParObjectFactory::pre_evaluate(Core::FE::Discretization& dis,
250-
Teuchos::ParameterList& p, std::shared_ptr<Core::LinAlg::SparseOperator> systemmatrix1,
251-
std::shared_ptr<Core::LinAlg::SparseOperator> systemmatrix2,
252-
std::shared_ptr<Core::LinAlg::Vector<double>> systemvector1,
253-
std::shared_ptr<Core::LinAlg::Vector<double>> systemvector2,
254-
std::shared_ptr<Core::LinAlg::Vector<double>> systemvector3)
255-
{
256-
finalize_registration();
257-
258-
std::set<Core::Elements::ElementType*>& ae = active_elements_[&dis];
259-
260-
for (std::set<Core::Elements::ElementType*>::iterator i = ae.begin(); i != ae.end(); ++i)
261-
{
262-
(*i)->pre_evaluate(
263-
dis, p, systemmatrix1, systemmatrix2, systemvector1, systemvector2, systemvector3);
264-
}
265-
}
266-
267-
268243
/*----------------------------------------------------------------------*/
269244
/*----------------------------------------------------------------------*/
270245
void Core::Communication::ParObjectFactory::setup_element_definition(

src/core/comm/src/4C_comm_parobjectfactory.hpp

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,9 @@
1111
#include "4C_config.hpp"
1212

1313
#include "4C_comm_pack_buffer.hpp"
14-
#include "4C_linalg_vector.hpp"
15-
#include "4C_utils_parameter_list.fwd.hpp"
1614

1715
#include <map>
1816
#include <memory>
19-
#include <set>
2017
#include <string>
2118
#include <vector>
2219

@@ -112,14 +109,6 @@ namespace Core::Communication
112109
/// initialize all element types
113110
void initialize_elements(Core::FE::Discretization& dis);
114111

115-
/// preevaluate elements (via element types)
116-
void pre_evaluate(Core::FE::Discretization& dis, Teuchos::ParameterList& p,
117-
std::shared_ptr<Core::LinAlg::SparseOperator> systemmatrix1,
118-
std::shared_ptr<Core::LinAlg::SparseOperator> systemmatrix2,
119-
std::shared_ptr<Core::LinAlg::Vector<double>> systemvector1,
120-
std::shared_ptr<Core::LinAlg::Vector<double>> systemvector2,
121-
std::shared_ptr<Core::LinAlg::Vector<double>> systemvector3);
122-
123112
/// setup definition of element input file lines
124113
void setup_element_definition(
125114
std::map<std::string, std::map<std::string, Core::IO::InputSpec>>& definitions);
@@ -142,11 +131,7 @@ namespace Core::Communication
142131
/// preregistered types
143132
std::vector<ParObjectType*> types_;
144133

145-
/// element types that are actually used
146-
std::map<Core::FE::Discretization*, std::set<Core::Elements::ElementType*>> active_elements_;
147-
148134
// no copying
149-
150135
ParObjectFactory(const ParObjectFactory&);
151136
ParObjectFactory& operator=(const ParObjectFactory&);
152137
};

src/core/fem/src/discretization/4C_fem_discretization_evaluate.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,6 @@ void Core::FE::Discretization::evaluate(Teuchos::ParameterList& params,
7777
int row = strategy.first_dof_set();
7878
int col = strategy.second_dof_set();
7979

80-
// call the element's register class preevaluation method
81-
// for each type of element
82-
// for most element types, just the base class dummy is called
83-
// that does nothing
84-
Core::Communication::ParObjectFactory::instance().pre_evaluate(*this, params,
85-
strategy.systemmatrix1(), strategy.systemmatrix2(), strategy.systemvector1(),
86-
strategy.systemvector2(), strategy.systemvector3());
87-
8880
Core::Elements::LocationArray la(dofsets_.size());
8981

9082
// loop over column elements

src/core/fem/src/discretization/4C_fem_discretization_utils_evaluate.cpp

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -67,17 +67,6 @@ void Core::FE::Utils::evaluate(Core::FE::Discretization& discret, Teuchos::Param
6767
int row = strategy.first_dof_set();
6868
int col = strategy.second_dof_set();
6969

70-
// call the element's register class pre-evaluation method
71-
// for each type of element
72-
// for most element types, just the base class dummy is called
73-
// that does nothing
74-
{
75-
TEUCHOS_FUNC_TIME_MONITOR("Core::FE::Utils::Evaluate pre_evaluate");
76-
Core::Communication::ParObjectFactory::instance().pre_evaluate(discret, eparams,
77-
strategy.systemmatrix1(), strategy.systemmatrix2(), strategy.systemvector1(),
78-
strategy.systemvector2(), strategy.systemvector3());
79-
}
80-
8170
Core::Elements::LocationArray la(discret.num_dof_sets());
8271

8372
bool is_subset = false;

src/core/fem/src/dofset/4C_fem_dofset_definedmapping_wrapper.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
#include "4C_fem_dofset_base.hpp"
1414
#include "4C_fem_general_node.hpp"
1515

16+
#include <set>
17+
1618

1719
FOUR_C_NAMESPACE_OPEN
1820

@@ -21,6 +23,12 @@ namespace Core::FE
2123
class Discretization;
2224
} // namespace Core::FE
2325

26+
namespace Core::LinAlg
27+
{
28+
template <typename T>
29+
class Vector;
30+
}
31+
2432
namespace Core::DOFSets
2533
{
2634
/*!

src/core/fem/src/dofset/4C_fem_dofset_pbc.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
#include "4C_config.hpp"
1212

1313
#include "4C_fem_dofset.hpp"
14-
#include "4C_linalg_map.hpp"
1514

1615
#include <map>
1716
#include <memory>
17+
#include <set>
1818
#include <vector>
1919

2020
FOUR_C_NAMESPACE_OPEN

src/core/fem/src/general/element/4C_fem_general_elementtype.hpp

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -71,17 +71,6 @@ namespace Core::Elements
7171
/// initialize the element type
7272
virtual int initialize(Core::FE::Discretization& dis);
7373

74-
/// preevaluation
75-
virtual inline void pre_evaluate(Core::FE::Discretization& dis, Teuchos::ParameterList& p,
76-
std::shared_ptr<Core::LinAlg::SparseOperator> systemmatrix1,
77-
std::shared_ptr<Core::LinAlg::SparseOperator> systemmatrix2,
78-
std::shared_ptr<Core::LinAlg::Vector<double>> systemvector1,
79-
std::shared_ptr<Core::LinAlg::Vector<double>> systemvector2,
80-
std::shared_ptr<Core::LinAlg::Vector<double>> systemvector3)
81-
{
82-
return;
83-
}
84-
8574
/*!
8675
\brief Get nodal block information to create a null space description
8776

src/core/fem/src/nurbs_discretization/4C_fem_nurbs_discretization_knotvector.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -664,8 +664,9 @@ void Core::FE::Nurbs::Knotvector::finish_knots(const int smallest_gid_in_dis)
664664

665665
for (int mm = 1; mm < (degree_[np])[rr] + 1; ++mm)
666666
{
667-
double db = abs((*((knot_values_[np])[rr]))[mm] - firstval);
668-
double de = abs((*((knot_values_[np])[rr]))[(n_x_m_x_l_[np])[rr] - 1 - mm] - lastval);
667+
double db = std::abs((*((knot_values_[np])[rr]))[mm] - firstval);
668+
double de =
669+
std::abs((*((knot_values_[np])[rr]))[(n_x_m_x_l_[np])[rr] - 1 - mm] - lastval);
669670

670671
if (de > 1e-9 || db > 1e-9)
671672
{
@@ -683,7 +684,7 @@ void Core::FE::Nurbs::Knotvector::finish_knots(const int smallest_gid_in_dis)
683684
double db = (*((knot_values_[np])[rr]))[mm] - (*((knot_values_[np])[rr]))[mm - 1];
684685
double de = (*((knot_values_[np])[rr]))[(n_x_m_x_l_[np])[rr] - mm] -
685686
(*((knot_values_[np])[rr]))[(n_x_m_x_l_[np])[rr] - 1 - mm];
686-
if (abs(de - db) > 1e-9)
687+
if (std::abs(de - db) > 1e-9)
687688
{
688689
FOUR_C_THROW("periodic knotvector doesn't obey periodicity\n");
689690
}

0 commit comments

Comments
 (0)