Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions src/contact/src/4C_contact_coupling2d.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include "4C_config.hpp"

#include "4C_contact_input.hpp"
#include "4C_inpar_wear.hpp"
#include "4C_contact_wear_input.hpp"
#include "4C_mortar_coupling2d.hpp"

FOUR_C_NAMESPACE_OPEN
Expand Down Expand Up @@ -59,18 +59,18 @@ namespace CONTACT
\brief Return type of wear surface definition

*/
Inpar::Wear::WearSide wear_side() const
Wear::WearSide wear_side() const
{
return Teuchos::getIntegralValue<Inpar::Wear::WearSide>(imortar_, "BOTH_SIDED_WEAR");
return Teuchos::getIntegralValue<Wear::WearSide>(imortar_, "BOTH_SIDED_WEAR");
}

/*!
\brief Return type of wear surface definition

*/
Inpar::Wear::WearType wear_type() const
Wear::WearType wear_type() const
{
return Teuchos::getIntegralValue<Inpar::Wear::WearType>(imortar_, "WEARTYPE");
return Teuchos::getIntegralValue<Wear::WearType>(imortar_, "WEARTYPE");
}

//@}
Expand Down
6 changes: 3 additions & 3 deletions src/contact/src/4C_contact_coupling3d.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include "4C_config.hpp"

#include "4C_contact_input.hpp"
#include "4C_inpar_wear.hpp"
#include "4C_contact_wear_input.hpp"
#include "4C_mortar_coupling3d.hpp"

FOUR_C_NAMESPACE_OPEN
Expand Down Expand Up @@ -151,9 +151,9 @@ namespace CONTACT
\brief Return type of wear surface definition

*/
Inpar::Wear::WearType wear_type() const
Wear::WearType wear_type() const
{
return Teuchos::getIntegralValue<Inpar::Wear::WearType>(imortar_, "WEARTYPE");
return Teuchos::getIntegralValue<Wear::WearType>(imortar_, "WEARTYPE");
}

//@}
Expand Down
124 changes: 61 additions & 63 deletions src/contact/src/4C_contact_integrator.cpp

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions src/contact/src/4C_contact_integrator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

#include "4C_config.hpp"

#include "4C_inpar_wear.hpp"
#include "4C_contact_wear_input.hpp"
#include "4C_mortar_integrator.hpp"
#include "4C_utils_pairedvector.hpp"

Expand Down Expand Up @@ -805,19 +805,19 @@ namespace CONTACT
\brief Return the Wear shape fcn type (wear weighting...)

*/
Inpar::Wear::WearShape wear_shape_fcn() { return wearshapefcn_; }
Wear::WearShape wear_shape_fcn() { return wearshapefcn_; }

/*!
\brief Return type of wear surface definition

*/
Inpar::Wear::WearSide wear_side() { return wearside_; }
Wear::WearSide wear_side() { return wearside_; }

/*!
\brief Return type of wear algorithm

*/
Inpar::Wear::WearType wear_type() { return weartype_; }
Wear::WearType wear_type() { return weartype_; }

/*!
\brief Return the LM shape fcn type
Expand Down Expand Up @@ -862,15 +862,15 @@ namespace CONTACT

// wear inputs from parameter list
//! type of wear law
Inpar::Wear::WearLaw wearlaw_;
Wear::WearLaw wearlaw_;
//! flag for implicit wear algorithm
bool wearimpl_;
//! definition of wear surface
Inpar::Wear::WearSide wearside_;
Wear::WearSide wearside_;
//! definition of contact wear algorithm
Inpar::Wear::WearType weartype_;
Wear::WearType weartype_;
//! type of wear shape function
Inpar::Wear::WearShape wearshapefcn_;
Wear::WearShape wearshapefcn_;
//! flag for steady state wear
bool sswear_;
//! wear coefficient
Expand Down
24 changes: 12 additions & 12 deletions src/contact/src/4C_contact_interpolator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,31 +27,31 @@ NTS::Interpolator::Interpolator(Teuchos::ParameterList& params, const int& dim)
: iparams_(params),
dim_(dim),
pwslip_(iparams_.get<bool>("GP_SLIP_INCR")),
wearlaw_(Teuchos::getIntegralValue<Inpar::Wear::WearLaw>(iparams_, "WEARLAW")),
wearlaw_(Teuchos::getIntegralValue<Wear::WearLaw>(iparams_, "WEARLAW")),
wearimpl_(false),
wearside_(Inpar::Wear::wear_slave),
weartype_(Inpar::Wear::wear_intstate),
wearshapefcn_(Inpar::Wear::wear_shape_standard),
wearside_(Wear::wear_slave),
weartype_(Wear::wear_intstate),
wearshapefcn_(Wear::wear_shape_standard),
wearcoeff_(-1.0),
wearcoeffm_(-1.0),
sswear_(iparams_.get<bool>("SSWEAR")),
ssslip_(iparams_.get<double>("SSSLIP"))
{
// wear specific
if (wearlaw_ != Inpar::Wear::wear_none)
if (wearlaw_ != Wear::wear_none)
{
// wear time integration
auto wtimint = Teuchos::getIntegralValue<Inpar::Wear::WearTimInt>(params, "WEARTIMINT");
if (wtimint == Inpar::Wear::wear_impl) wearimpl_ = true;
auto wtimint = Teuchos::getIntegralValue<Wear::WearTimInt>(params, "WEARTIMINT");
if (wtimint == Wear::wear_impl) wearimpl_ = true;

// wear surface
wearside_ = Teuchos::getIntegralValue<Inpar::Wear::WearSide>(iparams_, "BOTH_SIDED_WEAR");
wearside_ = Teuchos::getIntegralValue<Wear::WearSide>(iparams_, "BOTH_SIDED_WEAR");

// wear algorithm
weartype_ = Teuchos::getIntegralValue<Inpar::Wear::WearType>(iparams_, "WEARTYPE");
weartype_ = Teuchos::getIntegralValue<Wear::WearType>(iparams_, "WEARTYPE");

// wear shape function
wearshapefcn_ = Teuchos::getIntegralValue<Inpar::Wear::WearShape>(iparams_, "WEAR_SHAPEFCN");
wearshapefcn_ = Teuchos::getIntegralValue<Wear::WearShape>(iparams_, "WEAR_SHAPEFCN");

// wear coefficient
wearcoeff_ = iparams_.get<double>("WEARCOEFF");
Expand Down Expand Up @@ -217,7 +217,7 @@ void NTS::Interpolator::interpolate_2d(Mortar::Node& snode, std::vector<Mortar::
}

// calculate node-wise wear (prim. var.)
if (weartype_ == Inpar::Wear::wear_primvar)
if (weartype_ == Wear::wear_primvar)
{
FOUR_C_THROW("stop");
nw_t_e_2d(mynode, area, jumpval, dslipmatrix);
Expand Down Expand Up @@ -893,7 +893,7 @@ void NTS::Interpolator::nw_wear_2d(CONTACT::Node& mynode, Mortar::Element& mele,
//****************************************************************
// linearization for implicit algorithms
//****************************************************************
if ((wearimpl_ || weartype_ == Inpar::Wear::wear_primvar) and abs(jumpval) > 1e-12)
if ((wearimpl_ || weartype_ == Wear::wear_primvar) and abs(jumpval) > 1e-12)
{
// lin. abs(x) = x/abs(x) * lin x.
double xabsx = (jumpval / abs(jumpval)) * lm_lin;
Expand Down
20 changes: 10 additions & 10 deletions src/contact/src/4C_contact_interpolator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
*---------------------------------------------------------------------*/
#include "4C_config.hpp"

#include "4C_contact_wear_input.hpp"
#include "4C_fem_general_utils_local_connectivity_matrices.hpp"
#include "4C_inpar_wear.hpp"
#include "4C_utils_pairedvector.hpp"
#include "4C_utils_singleton_owner.hpp"

Expand Down Expand Up @@ -176,15 +176,15 @@ namespace NTS
bool pwslip_; //< point-wise evaluated slip increment

// wear inputs from parameter list
Inpar::Wear::WearLaw wearlaw_; //< type of wear law
bool wearimpl_; //< flag for implicit wear algorithm
Inpar::Wear::WearSide wearside_; //< definition of wear surface
Inpar::Wear::WearType weartype_; //< definition of contact wear algorithm
Inpar::Wear::WearShape wearshapefcn_; //< type of wear shape function
double wearcoeff_; //< wear coefficient
double wearcoeffm_; //< wear coefficient master
bool sswear_; //< flag for steady state wear
double ssslip_; //< fixed slip for steady state wear
Wear::WearLaw wearlaw_; //< type of wear law
bool wearimpl_; //< flag for implicit wear algorithm
Wear::WearSide wearside_; //< definition of wear surface
Wear::WearType weartype_; //< definition of contact wear algorithm
Wear::WearShape wearshapefcn_; //< type of wear shape function
double wearcoeff_; //< wear coefficient
double wearcoeffm_; //< wear coefficient master
bool sswear_; //< flag for steady state wear
double ssslip_; //< fixed slip for steady state wear
};


Expand Down
53 changes: 24 additions & 29 deletions src/contact/src/4C_contact_lagrange_strategy_wear.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
#include "4C_contact_input.hpp"
#include "4C_contact_interface.hpp"
#include "4C_contact_lagrange_strategy.hpp"
#include "4C_contact_wear_input.hpp"
#include "4C_contact_wear_interface.hpp"
#include "4C_fem_discretization.hpp"
#include "4C_global_data.hpp"
#include "4C_inpar_wear.hpp"
#include "4C_io.hpp"
#include "4C_linalg_fevector.hpp"
#include "4C_linalg_utils_densematrix_communication.hpp"
Expand Down Expand Up @@ -57,31 +57,30 @@ Wear::LagrangeStrategyWear::LagrangeStrategyWear(

// set wear contact status
auto wtype =
Teuchos::getIntegralValue<Inpar::Wear::WearType>(LagrangeStrategyWear::params(), "WEARTYPE");
Teuchos::getIntegralValue<Wear::WearType>(LagrangeStrategyWear::params(), "WEARTYPE");
auto wside =
Teuchos::getIntegralValue<Inpar::Wear::WearSide>(LagrangeStrategyWear::params(), "WEAR_SIDE");
auto wtime = Teuchos::getIntegralValue<Inpar::Wear::WearTimeScale>(
Teuchos::getIntegralValue<Wear::WearSide>(LagrangeStrategyWear::params(), "WEAR_SIDE");
auto wtime = Teuchos::getIntegralValue<Wear::WearTimeScale>(
LagrangeStrategyWear::params(), "WEAR_TIMESCALE");
auto wtimint = Teuchos::getIntegralValue<Inpar::Wear::WearTimInt>(
LagrangeStrategyWear::params(), "WEARTIMINT");
auto wlaw =
Teuchos::getIntegralValue<Inpar::Wear::WearLaw>(LagrangeStrategyWear::params(), "WEARLAW");
auto wtimint =
Teuchos::getIntegralValue<Wear::WearTimInt>(LagrangeStrategyWear::params(), "WEARTIMINT");
auto wlaw = Teuchos::getIntegralValue<Wear::WearLaw>(LagrangeStrategyWear::params(), "WEARLAW");

// set wear contact status
if (wlaw != Inpar::Wear::wear_none and wtype == Inpar::Wear::wear_intstate) weightedwear_ = true;
if (wlaw != Wear::wear_none and wtype == Wear::wear_intstate) weightedwear_ = true;

// discrete both-sided wear for active set output
if (wside == Inpar::Wear::wear_both and wtype == Inpar::Wear::wear_primvar) wbothpv_ = true;
if (wtimint == Inpar::Wear::wear_impl) wearimpl_ = true;
if (wside == Wear::wear_both and wtype == Wear::wear_primvar) wbothpv_ = true;
if (wtimint == Wear::wear_impl) wearimpl_ = true;

// set wear contact discretization
if (wtype == Inpar::Wear::wear_primvar) wearprimvar_ = true;
if (wtype == Wear::wear_primvar) wearprimvar_ = true;

// both sided wear for discrete wear
if (wside == Inpar::Wear::wear_both and wtype == Inpar::Wear::wear_primvar) wearbothpv_ = true;
if (wside == Wear::wear_both and wtype == Wear::wear_primvar) wearbothpv_ = true;

// different wear timescales?
if (wtime == Inpar::Wear::wear_time_different) weartimescales_ = true;
if (wtime == Wear::wear_time_different) weartimescales_ = true;

return;
}
Expand Down Expand Up @@ -197,8 +196,7 @@ void Wear::LagrangeStrategyWear::setup_wear(bool redistributed, bool init)
// ****************************************************
// both-sided wear specific
// ****************************************************
if (Teuchos::getIntegralValue<Inpar::Wear::WearSide>(params(), "WEAR_SIDE") ==
Inpar::Wear::wear_both and
if (Teuchos::getIntegralValue<Wear::WearSide>(params(), "WEAR_SIDE") == Wear::wear_both and
wearprimvar_ == false)
{
gminvolvednodes_ =
Expand Down Expand Up @@ -401,8 +399,7 @@ void Wear::LagrangeStrategyWear::assemble_mortar()
// only assemble D2 for both-sided wear --> unweights the
// weighted wear increment in master side
// --> based on weak dirichlet bc!
if (Teuchos::getIntegralValue<Inpar::Wear::WearSide>(params(), "WEAR_SIDE") ==
Inpar::Wear::wear_both and
if (Teuchos::getIntegralValue<Wear::WearSide>(params(), "WEAR_SIDE") == Wear::wear_both and
!wearprimvar_)
interface_[i]->assemble_d2(*d2matrix_);

Expand Down Expand Up @@ -1570,12 +1567,12 @@ void Wear::LagrangeStrategyWear::condense_wear_discr(
std::shared_ptr<Core::LinAlg::Vector<double>>& feff, Core::LinAlg::Vector<double>& gact)
{
auto shapefcn = Teuchos::getIntegralValue<Mortar::ShapeFcn>(params(), "LM_SHAPEFCN");
auto wearshapefcn = Teuchos::getIntegralValue<Inpar::Wear::WearShape>(params(), "WEAR_SHAPEFCN");
auto wearshapefcn = Teuchos::getIntegralValue<Wear::WearShape>(params(), "WEAR_SHAPEFCN");

// double-check if this is a dual LM system
if (shapefcn != Mortar::shape_dual && shapefcn != Mortar::shape_petrovgalerkin)
FOUR_C_THROW("Condensation only for dual LM");
if (wearshapefcn != Inpar::Wear::wear_shape_dual) FOUR_C_THROW("Condensation only for dual wear");
if (wearshapefcn != Wear::wear_shape_dual) FOUR_C_THROW("Condensation only for dual wear");

// get stick map
std::shared_ptr<Core::LinAlg::Map> gstickt = Core::LinAlg::split_map(*gactivet_, *gslipt_);
Expand Down Expand Up @@ -2674,7 +2671,7 @@ void Wear::LagrangeStrategyWear::evaluate_friction(
auto systype = Teuchos::getIntegralValue<CONTACT::SystemType>(params(), "SYSTEM");

// get wear shapefunction type
auto wearshapefcn = Teuchos::getIntegralValue<Inpar::Wear::WearShape>(params(), "WEAR_SHAPEFCN");
auto wearshapefcn = Teuchos::getIntegralValue<Wear::WearShape>(params(), "WEAR_SHAPEFCN");

/**********************************************************************/
/* export weighted gap vector to gactiveN-map */
Expand Down Expand Up @@ -2799,9 +2796,9 @@ void Wear::LagrangeStrategyWear::evaluate_friction(
// steady state scenario
if (sswear_)
{
if (wearshapefcn == Inpar::Wear::wear_shape_dual)
if (wearshapefcn == Wear::wear_shape_dual)
ematrix_->complete(*gactiven_, *gactiven_); // quadr. matrix --> for dual shapes --> diag.
else if (wearshapefcn == Inpar::Wear::wear_shape_standard)
else if (wearshapefcn == Wear::wear_shape_standard)
ematrix_->complete(
*gsdofnrowmap_, *gactiven_); // quadr. matrix --> for dual shapes --> diag.
else
Expand All @@ -2816,9 +2813,9 @@ void Wear::LagrangeStrategyWear::evaluate_friction(
// general scenario
else
{
if (wearshapefcn == Inpar::Wear::wear_shape_dual)
if (wearshapefcn == Wear::wear_shape_dual)
ematrix_->complete(*gslipn_, *gslipn_); // quadr. matrix --> for dual shapes --> diag.
else if (wearshapefcn == Inpar::Wear::wear_shape_standard)
else if (wearshapefcn == Wear::wear_shape_standard)
ematrix_->complete(
*gsdofnrowmap_, *gslipn_); // quadr. matrix --> for dual shapes --> diag.
else
Expand Down Expand Up @@ -4235,8 +4232,7 @@ void Wear::LagrangeStrategyWear::output_wear()
* unweight the resulting vector by D_2^-1*w_2~ and get the final
* unweighted wear vector.
**********************************************************************/
if (Teuchos::getIntegralValue<Inpar::Wear::WearSide>(params(), "WEAR_SIDE") ==
Inpar::Wear::wear_both)
if (Teuchos::getIntegralValue<Wear::WearSide>(params(), "WEAR_SIDE") == Wear::wear_both)
{
// different wear coefficients on both sides...
double wearcoeff_s = params().get<double>("WEARCOEFF", 0.0);
Expand Down Expand Up @@ -4984,8 +4980,7 @@ void Wear::LagrangeStrategyWear::update_active_set_semi_smooth(const bool firstS
for (int i = 0; i < (int)interface_.size(); ++i)
{
// for both-sided wear
if (Teuchos::getIntegralValue<Inpar::Wear::WearSide>(scontact_, "WEAR_SIDE") ==
Inpar::Wear::wear_both and
if (Teuchos::getIntegralValue<Wear::WearSide>(scontact_, "WEAR_SIDE") == Wear::wear_both and
wearprimvar_ == false)
{
gminvolvednodes_ =
Expand Down
Loading
Loading