Commit 4e43347e authored by Antoine Jacquey's avatar Antoine Jacquey

Updated repository for new AD and validParams.

parent b053f44a
......@@ -2,22 +2,32 @@
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**"
],
"includePath": ["${workspaceFolder}",
"${workspaceFolder}/build/header_symlinks",
"${workspaceFolder}/../moose/framework/build/header_symlinks",
"${workspaceFolder}/../moose/modules/module_loader/build/header_symlinks",
"${workspaceFolder}/../moose/framework/contrib/boost/include",
"${workspaceFolder}/../moose/framework/contrib/hit",
"${HOME}/miniconda/envs/moose/include",
"${HOME}/miniconda/envs/moose/libmesh/include"],
"defines": [],
"macFrameworkPath": [
"/System/Library/Frameworks",
"/Library/Frameworks"
],
"compilerPath": "/opt/moose/llvm-8.0.0/bin/clang",
"compilerPath": "${HOME}/miniconda/envs/moose/bin/clang",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64",
"compileCommands": "${workspaceFolder}/compile_commands.json",
"browse": {"path": ["${workspaceFolder}",
"${workspaceFolder}/build/header_symlinks",
"${workspaceFolder}/../moose/framework/build/header_symlinks",
"${workspaceFolder}/../moose/libmesh/build/include/libmesh"]}
"${workspaceFolder}/../moose/modules/module_loader/build/header_symlinks",
"${workspaceFolder}/../moose/framework/contrib/boost/include",
"${workspaceFolder}/../moose/framework/contrib/hit",
"${HOME}/miniconda/envs/moose/include",
"${HOME}/miniconda/envs/moose/libmesh/include"]}
}
],
"version": 4
......
......@@ -6,7 +6,7 @@
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/lynx-dbg",
"args": ["-i", "test/tests/creep/dislocation_custom.i"],
"args": ["-i", "test/tests/thermo_mech/thermal_expansion.i"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
......
......@@ -189,7 +189,33 @@
"LynxHeatSources copy.C": "cpp",
"LynxADHeatSources.C": "cpp",
"LynxADPlasticModel.C": "cpp",
"LynxDarcyVelocityAux.C": "cpp"
"LynxDarcyVelocityAux.C": "cpp",
"LynxStrainAuxBase copy.C": "cpp",
"LynxADStrainAuxBase.C": "cpp",
"LynxStressAuxBase copy.C": "cpp",
"LynxADStressAuxBase.C": "cpp",
"LynxStrainAux copy.C": "cpp",
"LynxADStrainAux.C": "cpp",
"LynxVolStrainAux copy.C": "cpp",
"LynxADVolStrainAux.C": "cpp",
"LynxVolStrainRateAux copy.C": "cpp",
"LynxADVolStrainRateAux.C": "cpp",
"LynxEqvStrainAux copy.C": "cpp",
"LynxADEqvStrainAux.C": "cpp",
"LynxEqvStrainRateAux copy.C": "cpp",
"LynxADEqvStrainRateAux.C": "cpp",
"LynxStressAux copy.C": "cpp",
"LynxADStressAux.C": "cpp",
"LynxVonMisesStressAux copy.C": "cpp",
"LynxADVonMisesStressAux.C": "cpp",
"LynxEffectivePressureAux copy.C": "cpp",
"LynxADEffectivePressureAux.C": "cpp",
"LynxADDamageDeformation.C": "cpp",
"adolcforward": "cpp",
"mprealsupport": "cpp",
"LynxADDarcyVelocityAux.C": "cpp",
"LynxADPorosityAux.C": "cpp",
"LynxADHeatFluxAux.C": "cpp"
},
"C_Cpp.errorSquiggles": "Disabled",
"python.pythonPath": "/opt/moose/miniconda/bin/python"
......
......@@ -12,14 +12,15 @@
"kind": "build",
"isDefault": true
},
"options": {"shell": {"args": ["-ic"]}},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
},
// arg passing example: in this case is executed with 2 processors
"args": ["test", "-j2"],
// arg passing example: in this case is executed with 4 processors
"args": ["test", "-j4"],
// Use the standard less compilation problem matcher.
"problemMatcher": {
"owner": "cpp",
......@@ -40,6 +41,7 @@
"command": "make",
// start the build without prompting for task selection, use "group": "build" otherwise
"group": "none",
"options": {"shell": {"args": ["-ic"]}},
"presentation": {
"echo": true,
"reveal": "always",
......@@ -68,6 +70,7 @@
"command": "make",
// start the build without prompting for task selection, use "group": "build" otherwise
"group": "none",
"options": {"shell": {"args": ["-ic"]}},
"presentation": {
"echo": true,
"reveal": "always",
......@@ -99,14 +102,15 @@
"kind": "test",
"isDefault": true
},
"options": {"shell": {"args": ["-ic"]}},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
},
// arg passing example: in this case is executed with 2 processors
"args": ["-j2"]
// arg passing example: in this case is executed with 4 processors
"args": ["-j4"]
}
]
}
\ No newline at end of file
......@@ -6,6 +6,11 @@ This includes a reference to the repository:
Jacquey, Antoine B., & Cacace, Mauro. (2019, July 30). LYNX: Lithosphere dYnamic Numerical toolboX, a MOOSE-based application (Version 1.0). Zenodo. http://doi.org/10.5281/zenodo.3355376
And to one of the following research articles:
Jacquey, Antoine B., & Cacace, Mauro. (2020). Multiphysics Modeling of a Brittle‐Ductile Lithosphere: 1. Explicit Visco‐Elasto‐Plastic Formulation and Its Numerical Implementation. Journal of Geophysical Research: Solid Earth. http://doi.org/10.1029/2019jb018474
Jacquey, Antoine B., & Cacace, Mauro. (2020). Multiphysics Modeling of a Brittle‐Ductile Lithosphere: 2. Semi‐brittle, Semi‐ductile Deformation and Damage Rheology. Journal of Geophysical Research: Solid Earth. http://doi.org/10.1029/2019jb018475
And also a reference to the publication describing the theory and implementation of the LYNX simulator:
The articles presenting the LYNX simulator are currently under review.
......@@ -18,4 +23,34 @@ Here are the BibTex entries for LaTeX users:
year = {2019},
doi = {10.5281/zenodo.3355376},
url = {https://doi.org/10.5281/zenodo.3355376}
}
\ No newline at end of file
}
@article{Lynx1,
author = {Jacquey, Antoine B. and Cacace, Mauro},
title = {Multiphysics Modeling of a Brittle-Ductile Lithosphere: 1. Explicit Visco-Elasto-Plastic Formulation and Its Numerical Implementation},
journal = {Journal of Geophysical Research: Solid Earth},
volume = {125},
number = {1},
pages = {e2019JB018474},
doi = {10.1029/2019JB018474},
url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2019JB018474},
eprint = {https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/2019JB018474},
note = {e2019JB018474 10.1029/2019JB018474},
abstract = {Abstract The long-term strength of the lithosphere is controled by two different modes of deformation: a brittle-like, effective pressure-sensitive behavior at shallow crustal depth, which gradually transits to a thermally activated ductile flow rheology with increasing depth. All applications dealing with long-term tectonics therefore share the necessity to describe in a consistent way the multiphysics coupling among the different deformation mechanisms controlling the bulk behavior of the lithosphere. We describe an efficient numerical implementation of a consistent visco-elasto-plastic rheology suitable to describe the first-order aspects of continental rock masses. Different from typical long-term geodynamics numerical frameworks, we explicitly account for both volumetric and deviatoric response of lithospheric rocks to applied loads. Plastic correction to a viscoelastic stress state is introduced via a non-associative Drucker-Prager model, without resorting to the assumption of a plastic limiter. The transient behavior of crustal and lithospheric rocks is accounted for by an overstress (rate-dependent) viscoplastic rheology, which additionally helps solving for numerical issues related to plastic strain accumulation even in the absence of energetic feedbacks. When applied to the study of the dynamics of plume-lithosphere interactions, our implementation is able to reproduce a surface topography with complex multiharmonic wavelength patterns in agreement with observations. In the final chapter, we discuss main limitations of the current rheological description when applied to the study of transient semi-brittle rock behavior. These aspects are tackled in a companion paper, where a thermodynamically consistent formulation extending the current numerical description is presented.},
year = {2020}
}
@article{Lynx2,
author = {Jacquey, Antoine B. and Cacace, Mauro},
title = {Multiphysics Modeling of a Brittle-Ductile Lithosphere: 2. Semi-brittle, Semi-ductile Deformation and Damage Rheology},
journal = {Journal of Geophysical Research: Solid Earth},
volume = {125},
number = {1},
pages = {e2019JB018475},
doi = {10.1029/2019JB018475},
url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2019JB018475},
eprint = {https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/2019JB018475},
note = {e2019JB018475 10.1029/2019JB018475},
abstract = {Abstract The brittle-ductile transition is a domain of finite extent characterized by high differential stress where both brittle and ductile deformation are likely to occur. Understanding its depth location, extent, and stability through time is of relevance for diverse applications including subduction dynamics, mantle-surface interactions, and, more recently, proper targeting of high-enthalpy unconventional geothermal resources, where local thermal conditions may activate ductile creep at shallower depths than expected. In this contribution, we describe a thermodynamically consistent physical framework and its numerical implementation, therefore extending the formulation of the companion paper Jacquey and Cacace (2020, https://doi.org/10.1029/2019JB018474) to model thermo-hydro-mechanical coupled processes responsible for the occurrence of transitional semi-brittle, semi-ductile behavior in porous rocks. We make use of a damage rheology to account for the macroscopic effects of microstructural processes leading to brittle-like material weakening and of a rate-dependent plastic model to account for ductile material behavior. Our formulation additionally considers the role of porosity and its evolution during loading in controlling the volumetric mechanical response of a stressed rock. By means of dedicated applications, we discuss how our damage poro-visco-elasto-viscoplastic rheology can effectively reconcile the style of localized deformation under different confining pressure conditions as well as the bulk macroscopic material response as recorded by laboratory experiments under full triaxial conditions.},
year = {2020}
}
......@@ -86,9 +86,15 @@ If you use LYNX for your work please cite:
* This repository:
Jacquey, Antoine B., & Cacace, Mauro. (2019, July 30). LYNX: Lithosphere dYnamic Numerical toolboX, a MOOSE-based application (Version 1.0). Zenodo. http://doi.org/10.5281/zenodo.3355376
* The following research articles:
Jacquey, Antoine B., & Cacace, Mauro. (2020). Multiphysics Modeling of a Brittle‐Ductile Lithosphere: 1. Explicit Visco‐Elasto‐Plastic Formulation and Its Numerical Implementation. Journal of Geophysical Research: Solid Earth. http://doi.org/10.1029/2019jb018474
Jacquey, Antoine B., & Cacace, Mauro. (2020). Multiphysics Modeling of a Brittle‐Ductile Lithosphere: 2. Semi‐brittle, Semi‐ductile Deformation and Damage Rheology. Journal of Geophysical Research: Solid Earth. http://doi.org/10.1029/2019jb018475
Please read the [CITATION](https://gitext.gfz-potsdam.de/ajacquey/lynx//blob/master/CITATION) file for more information.
## Publications using LYNX
More to come...
* Jacquey, Antoine B., & Cacace, Mauro. (2020). Multiphysics Modeling of a Brittle‐Ductile Lithosphere: 1. Explicit Visco‐Elasto‐Plastic Formulation and Its Numerical Implementation. Journal of Geophysical Research: Solid Earth. http://doi.org/10.1029/2019jb018474
* Jacquey, Antoine B., & Cacace, Mauro. (2020). Multiphysics Modeling of a Brittle‐Ductile Lithosphere: 2. Semi‐brittle, Semi‐ductile Deformation and Damage Rheology. Journal of Geophysical Research: Solid Earth. http://doi.org/10.1029/2019jb018475
......@@ -15,14 +15,10 @@
#include "Action.h"
class LynxADAdvectionAction;
template <>
InputParameters validParams<LynxADAdvectionAction>();
class LynxADAdvectionAction : public Action
{
public:
static InputParameters validParams();
LynxADAdvectionAction(InputParameters params);
enum ElementLengthType
{
......
......@@ -15,16 +15,11 @@
#include "Action.h"
class LynxHoldStressAction;
template <>
InputParameters validParams<LynxHoldStressAction>();
class LynxHoldStressAction : public Action
{
public:
static InputParameters validParams();
LynxHoldStressAction(const InputParameters & params);
virtual void act() override;
protected:
......
......@@ -15,16 +15,11 @@
#include "Action.h"
class LynxPressureAction;
template <>
InputParameters validParams<LynxPressureAction>();
class LynxPressureAction : public Action
{
public:
static InputParameters validParams();
LynxPressureAction(const InputParameters & params);
virtual void act() override;
protected:
......
/******************************************************************************/
/* This file is part of */
/* LYNX, a MOOSE-based application */
/* Lithosphere dYnamic Numerical toolboX */
/* */
/* Copyright (C) 2017 by Antoine B. Jacquey and Mauro Cacace */
/* GFZ Potsdam, German Research Centre for Geosciences */
/* */
/* Licensed under GNU General Public License 3, */
/* please see LICENSE for details */
/* or http://www.gnu.org/licenses/gpl.html */
/******************************************************************************/
#pragma once
#include "AuxKernel.h"
class LynxADDarcyVelocityAux : public AuxKernel
{
public:
static InputParameters validParams();
LynxADDarcyVelocityAux(const InputParameters & parameters);
protected:
virtual Real computeValue() override;
const unsigned int _component;
const VariableGradient & _grad_pf;
const ADMaterialProperty<Real> & _fluid_mobility;
const bool _coupled_grav;
const ADMaterialProperty<RealVectorValue> * _gravity;
const ADMaterialProperty<Real> * _rho_f;
};
\ No newline at end of file
/******************************************************************************/
/* This file is part of */
/* LYNX, a MOOSE-based application */
/* Lithosphere dYnamic Numerical toolboX */
/* */
/* Copyright (C) 2017 by Antoine B. Jacquey and Mauro Cacace */
/* GFZ Potsdam, German Research Centre for Geosciences */
/* */
/* Licensed under GNU General Public License 3, */
/* please see LICENSE for details */
/* or http://www.gnu.org/licenses/gpl.html */
/******************************************************************************/
#pragma once
#include "LynxADStressAuxBase.h"
class LynxADEffectivePressureAux : public LynxADStressAuxBase
{
public:
static InputParameters validParams();
LynxADEffectivePressureAux(const InputParameters & parameters);
protected:
virtual Real computeValue() override;
};
\ No newline at end of file
/******************************************************************************/
/* This file is part of */
/* LYNX, a MOOSE-based application */
/* Lithosphere dYnamic Numerical toolboX */
/* */
/* Copyright (C) 2017 by Antoine B. Jacquey and Mauro Cacace */
/* GFZ Potsdam, German Research Centre for Geosciences */
/* */
/* Licensed under GNU General Public License 3, */
/* please see LICENSE for details */
/* or http://www.gnu.org/licenses/gpl.html */
/******************************************************************************/
#pragma once
#include "LynxADStrainAuxBase.h"
class LynxADEqvStrainAux : public LynxADStrainAuxBase
{
public:
static InputParameters validParams();
LynxADEqvStrainAux(const InputParameters & parameters);
protected:
virtual Real computeValue() override;
};
\ No newline at end of file
/******************************************************************************/
/* This file is part of */
/* LYNX, a MOOSE-based application */
/* Lithosphere dYnamic Numerical toolboX */
/* */
/* Copyright (C) 2017 by Antoine B. Jacquey and Mauro Cacace */
/* GFZ Potsdam, German Research Centre for Geosciences */
/* */
/* Licensed under GNU General Public License 3, */
/* please see LICENSE for details */
/* or http://www.gnu.org/licenses/gpl.html */
/******************************************************************************/
#pragma once
#include "LynxADStrainAuxBase.h"
class LynxADEqvStrainRateAux : public LynxADStrainAuxBase
{
public:
static InputParameters validParams();
LynxADEqvStrainRateAux(const InputParameters & parameters);
protected:
virtual Real computeValue() override;
};
\ No newline at end of file
/******************************************************************************/
/* This file is part of */
/* LYNX, a MOOSE-based application */
/* Lithosphere dYnamic Numerical toolboX */
/* */
/* Copyright (C) 2017 by Antoine B. Jacquey and Mauro Cacace */
/* GFZ Potsdam, German Research Centre for Geosciences */
/* */
/* Licensed under GNU General Public License 3, */
/* please see LICENSE for details */
/* or http://www.gnu.org/licenses/gpl.html */
/******************************************************************************/
#pragma once
#include "AuxKernel.h"
class LynxADHeatFluxAux : public AuxKernel
{
public:
static InputParameters validParams();
LynxADHeatFluxAux(const InputParameters & parameters);
protected:
virtual Real computeValue() override;
const unsigned int _component;
const VariableGradient & _grad_T;
const ADMaterialProperty<Real> & _rhoC_b;
const ADMaterialProperty<Real> & _thermal_diff;
Real _cond_bulk;
};
\ No newline at end of file
/******************************************************************************/
/* This file is part of */
/* LYNX, a MOOSE-based application */
/* Lithosphere dYnamic Numerical toolboX */
/* */
/* Copyright (C) 2017 by Antoine B. Jacquey and Mauro Cacace */
/* GFZ Potsdam, German Research Centre for Geosciences */
/* */
/* Licensed under GNU General Public License 3, */
/* please see LICENSE for details */
/* or http://www.gnu.org/licenses/gpl.html */
/******************************************************************************/
#pragma once
#include "AuxKernel.h"
class LynxADPorosityAux : public AuxKernel
{
public:
static InputParameters validParams();
LynxADPorosityAux(const InputParameters & parameters);
protected:
virtual Real computeValue() override;
virtual Real computeEvDot();
virtual Real computeEvInDot();
bool _coupled_pf;
const VariableValue & _pf_dot;
const ADMaterialProperty<Real> & _biot;
const ADMaterialProperty<Real> & _C_d;
const ADMaterialProperty<RankTwoTensor> & _strain_increment;
const bool _has_viscous;
const ADMaterialProperty<RankTwoTensor> * _viscous_strain_incr;
const bool _has_plastic;
const ADMaterialProperty<RankTwoTensor> * _plastic_strain_incr;
};
\ No newline at end of file
/******************************************************************************/
/* This file is part of */
/* LYNX, a MOOSE-based application */
/* Lithosphere dYnamic Numerical toolboX */
/* */
/* Copyright (C) 2017 by Antoine B. Jacquey and Mauro Cacace */
/* GFZ Potsdam, German Research Centre for Geosciences */
/* */
/* Licensed under GNU General Public License 3, */
/* please see LICENSE for details */
/* or http://www.gnu.org/licenses/gpl.html */
/******************************************************************************/
#pragma once
#include "LynxADStrainAuxBase.h"
class LynxADStrainAux : public LynxADStrainAuxBase
{
public:
static InputParameters validParams();
LynxADStrainAux(const InputParameters & parameters);
protected:
virtual Real computeValue() override;
private:
const unsigned int _i;
const unsigned int _j;
};
\ No newline at end of file
/******************************************************************************/
/* This file is part of */
/* LYNX, a MOOSE-based application */
/* Lithosphere dYnamic Numerical toolboX */
/* */
/* Copyright (C) 2017 by Antoine B. Jacquey and Mauro Cacace */
/* GFZ Potsdam, German Research Centre for Geosciences */
/* */
/* Licensed under GNU General Public License 3, */
/* please see LICENSE for details */
/* or http://www.gnu.org/licenses/gpl.html */
/******************************************************************************/
#pragma once
#include "AuxKernel.h"
class LynxADStrainAuxBase;
class LynxADStrainAuxBase : public AuxKernel
{
public:
static InputParameters validParams();
LynxADStrainAuxBase(const InputParameters & parameters);
static MooseEnum strainType();
protected:
MooseEnum _strain_type;
std::string _strain_name;
const ADMaterialProperty<RankTwoTensor> * _strain_incr;
};
\ No newline at end of file
/******************************************************************************/
/* This file is part of */
/* LYNX, a MOOSE-based application */
/* Lithosphere dYnamic Numerical toolboX */
/* */
/* Copyright (C) 2017 by Antoine B. Jacquey and Mauro Cacace */
/* GFZ Potsdam, German Research Centre for Geosciences */
/* */
/* Licensed under GNU General Public License 3, */
/* please see LICENSE for details */
/* or http://www.gnu.org/licenses/gpl.html */
/******************************************************************************/
#pragma once
#include "LynxADStressAuxBase.h"
class LynxADStressAux : public LynxADStressAuxBase
{
public:
static InputParameters validParams();
LynxADStressAux(const InputParameters & parameters);
protected:
virtual Real computeValue() override;
private:
const bool _coupled_pt;
const ADVariableValue & _pt;
const unsigned int _i;
const unsigned int _j;
};
\ No newline at end of file
/******************************************************************************/
/* This file is part of */
/* LYNX, a MOOSE-based application */
/* Lithosphere dYnamic Numerical toolboX */
/* */
/* Copyright (C) 2017 by Antoine B. Jacquey and Mauro Cacace */
/* GFZ Potsdam, German Research Centre for Geosciences */
/* */
/* Licensed under GNU General Public License 3, */
/* please see LICENSE for details */
/* or http://www.gnu.org/licenses/gpl.html */
/******************************************************************************/
#pragma once
#include "AuxKernel.h"
class LynxADStressAuxBase : public AuxKernel
{
public:
static InputParameters validParams();
LynxADStressAuxBase(const InputParameters & parameters);
protected:
const ADMaterialProperty<RankTwoTensor> & _stress;
};
\ No newline at end of file
/******************************************************************************/
/* This file is part of */
/* LYNX, a MOOSE-based application */
/* Lithosphere dYnamic Numerical toolboX */
/* */
/* Copyright (C) 2017 by Antoine B. Jacquey and Mauro Cacace */
/* GFZ Potsdam, German Research Centre for Geosciences */
/* */
/* Licensed under GNU General Public License 3, */
/* please see LICENSE for details */
/* or http://www.gnu.org/licenses/gpl.html */
/******************************************************************************/
#pragma once
#include "LynxADStrainAuxBase.h"
class LynxADVolStrainAux : public LynxADStrainAuxBase
{
public:
static InputParameters validParams();
LynxADVolStrainAux(const InputParameters & parameters);
protected:
virtual Real computeValue() override;
};
\ No newline at end of file
/******************************************************************************/
/* This file is part of */
/* LYNX, a MOOSE-based application */
/* Lithosphere dYnamic Numerical toolboX */
/* */
/* Copyright (C) 2017 by Antoine B. Jacquey and Mauro Cacace */
/* GFZ Potsdam, German Research Centre for Geosciences */
/* */
/* Licensed under GNU General Public License 3, */
/* please see LICENSE for details */
/* or http://www.gnu.org/licenses/gpl.html */
/******************************************************************************/
#pragma once
#include "LynxADStrainAuxBase.h"
class LynxADVolStrainRateAux : public LynxADStrainAuxBase
{
public:
static InputParameters validParams();
LynxADVolStrainRateAux(const InputParameters & parameters);
protected:
virtual Real computeValue() override;
};
\ No newline at end of file
/******************************************************************************/
/* This file is part of */
/* LYNX, a MOOSE-based application */
/* Lithosphere dYnamic Numerical toolboX */
/* */
/* Copyright (C) 2017 by Antoine B. Jacquey and Mauro Cacace */
/* GFZ Potsdam, German Research Centre for Geosciences */
/* */
/* Licensed under GNU General Public License 3, */
/* please see LICENSE for details */
/* or http://www.gnu.org/licenses/gpl.html */
/******************************************************************************/
#pragma once
#include "LynxADStressAuxBase.h"
class LynxADVonMisesStressAux : public LynxADStressAuxBase
{
public:
static InputParameters validParams();
LynxADVonMisesStressAux(const InputParameters & parameters);
protected:
virtual Real computeValue() override;
};
\ No newline at end of file
......@@ -15,15 +15,11 @@
#include "AuxKernel.h"
class LynxComboPhasesAux;
template <>
InputParameters validParams<LynxComboPhasesAux>();