Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F82401018
maxwell_viscoelastic.hh
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, Sep 11, 04:58
Size
3 KB
Mime Type
text/x-c++
Expires
Fri, Sep 13, 04:58 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
20648475
Attached To
rTAMAAS tamaas
maxwell_viscoelastic.hh
View Options
/*
* SPDX-License-Indentifier: AGPL-3.0-or-later
*
* Copyright (©) 2016-2024 EPFL (École Polytechnique Fédérale de Lausanne),
* Laboratory (LSMS - Laboratoire de Simulation en Mécanique des Solides),
* Laboratory (IJLRDA - Institut Jean Le Rond d'Alembert)
* Copyright (©) 2020-2024 Lucas Frérot
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
/* -------------------------------------------------------------------------- */
#ifndef MAXWELL_VISCOELASTIC_HH
#define MAXWELL_VISCOELASTIC_HH
/* -------------------------------------------------------------------------- */
#include "polonsky_keer_rey.hh"
#include "westergaard.hh"
/* -------------------------------------------------------------------------- */
namespace
tamaas
{
/**
@brief Viscoelastic, pressure-based normal contact solver, based on
a generalized Maxwell model
*/
class
MaxwellViscoelastic
:
public
PolonskyKeerRey
{
public
:
/// Constructor
MaxwellViscoelastic
(
Model
&
model
,
const
GridBase
<
Real
>&
surface
,
Real
tolerance
,
Real
time_step
,
std
::
vector
<
Real
>
shear_moduli_maxwell
,
std
::
vector
<
Real
>
characteristic_times
);
~
MaxwellViscoelastic
()
override
=
default
;
public
:
/// \cond DO_NOT_DOCUMENT
using
PolonskyKeerRey
::
solve
;
/// \endcond
/// Main solve function with backward euler scheme
Real
solve
(
std
::
vector
<
Real
>
target
)
override
;
/// Reset function, reset the global displacement and the partial displacement
void
reset
();
private
:
/// Compute the effective shear moduli for maxwell branches
Real
computeGtilde
(
const
Real
&
time_step
,
const
std
::
vector
<
Real
>&
shear_moduli_maxwell
,
const
std
::
vector
<
Real
>&
characteristic_times
)
const
;
/// Compute the partial displacement coefficient for each maxwell branch to
/// update surface
std
::
vector
<
Real
>
computeGamma
(
const
Real
&
time_step
,
const
std
::
vector
<
Real
>&
shear_moduli_maxwell
,
const
std
::
vector
<
Real
>&
characteristic_times
)
const
;
protected
:
Real
time_step_
;
std
::
vector
<
Real
>
shear_moduli_
;
///< list of shear moduli
std
::
vector
<
Real
>
characteristic_times_
;
///< list of characteristic relaxation times
std
::
vector
<
GridBase
<
Real
>>
M
;
///< partial displacements
GridBase
<
Real
>
U
;
///< global viscoelastic displacement
};
}
// namespace tamaas
#endif
// MAXWELL_VISCOELASTIC_HH
Event Timeline
Log In to Comment