10 #if !defined(KRATOS_REFINE_CONDITIONS_MESHER_PROCESS_H_INCLUDED )
11 #define KRATOS_REFINE_CONDITIONS_MESHER_PROCESS_H_INCLUDED
109 std::cout<<
" [ REFINE BOUNDARY : "<<std::endl;
123 if( (
mrRemesh.
Refine->RefiningOptions.Is(MesherUtilities::REFINE_INSERT_NODES) ||
mrRemesh.
Refine->RefiningOptions.Is(MesherUtilities::REFINE_ADD_NODES)) &&
mrRemesh.
Refine->RefiningOptions.Is(MesherUtilities::REFINE_BOUNDARY) )
126 std::vector<NodeType::Pointer> list_of_nodes;
127 std::vector<ConditionType::Pointer> list_of_conditions;
131 list_of_nodes.reserve(conditions_size);
132 list_of_conditions.reserve(conditions_size);
160 std::cout<<
" REFINE BOUNDARY ]; "<<std::endl;
183 std::string
Info()
const override
185 return "RefineConditionsMesherProcess";
191 rOStream <<
"RefineConditionsMesherProcess";
232 if( pCondition->GetValue(MASTER_ELEMENTS).size() > 0 ){
236 std::vector<double> Value;
241 double threshold_value = 0;
243 for(std::vector<double>::iterator
v = Value.begin();
v!=Value.end(); ++
v)
244 threshold_value += *
v;
246 threshold_value /=
double(Value.size());
252 if( threshold_value >
mrRemesh.
Refine->ReferenceThreshold && face_size > critical_size )
272 if( face_size > critical_size )
287 bool refine_condition =
false;
290 double size_for_threshold_face = 2.50 *
mrRemesh.
Refine->CriticalSide;
292 if (
mrRemesh.
Refine->RefiningOptions.Is(MesherUtilities::REFINE_BOUNDARY_ON_THRESHOLD) )
293 refine_condition = this->
RefineOnThreshold(pCondition, rCurrentProcessInfo, size_for_threshold_face);
295 if( refine_condition ){
298 double size_for_boundary_threshold =
mrRemesh.
Refine->CriticalSide;
299 refine_condition = this->
RefineOnDistance(pCondition, size_for_boundary_threshold);
301 if( refine_condition ){
308 refine_condition =
false;
311 double size_for_boundary_face = 3.50 *
mrRemesh.
Refine->CriticalSide;
313 if (
mrRemesh.
Refine->RefiningOptions.Is(MesherUtilities::REFINE_BOUNDARY_ON_DISTANCE) )
314 refine_condition = this->
RefineOnDistance(pCondition, size_for_boundary_face);
316 if( refine_condition ){
334 if (
mrRemesh.
Refine->RefiningOptions.Is(MesherUtilities::REFINE_BOUNDARY_ON_DISTANCE)
335 || (
mrRemesh.
Refine->RefiningOptions.Is(MesherUtilities::REFINE_BOUNDARY_ON_THRESHOLD) ) ){
337 bool refine_condition =
false;
338 bool curved_contact =
false;
339 bool contact_semi_active =
false;
340 std::vector<bool> semi_active_nodes;
346 if( contact_semi_active ){
348 std::vector<array_1d<double,3> > contact_normals;
360 if( contact_active ){
373 if( contact_active || contact_semi_active ){
376 refine_condition = this->
RefineOnDistance(pCondition, size_for_boundary_contact_face);
378 if( refine_condition ){
381 if(contact_active || contact_semi_active){
384 mrRemesh.
Refine->Info.BoundaryConditionsRefined.in_concave_boundary++;
406 bool contact_semi_active =
false;
407 std::vector<bool> semi_active_nodes;
411 if( contact_semi_active || contact_active ){
414 position_correction.
clear();
416 if( pCondition->GetGeometry().size() == 2 && pCondition->GetGeometry().WorkingSpaceDimension() == 2 ){
426 if( pCondition->GetGeometry().size() == 3 && pCondition->GetGeometry().WorkingSpaceDimension() == 3 ){
437 xc += position_correction[0];
438 yc += position_correction[1];
439 zc += position_correction[2];
455 bool is_curved =
false;
456 std::vector<array_1d<double, 3> > normals;
461 normal_direction.
clear();
464 tangent_direction.
clear();
469 double projection = 0.0;
470 for(
unsigned int i = 0;
i<3;
i++ )
471 projection += normals[0][
i] * normals[1][
i];
473 projection = std::sqrt(projection);
475 double angle = std::acos(projection);
479 double sagitta = 0.5 * face_size * std::tan(0.25*angle);
482 normal_direction = normals[0] + normals[1];
484 double modulus =
norm_2(normal_direction);
486 normal_direction /= modulus;
488 normal_direction *= sagitta;
491 tangent_direction = pCondition->GetGeometry()[0]-pCondition->GetGeometry()[1];
492 modulus =
norm_2(tangent_direction);
494 tangent_direction /= modulus;
497 if(
inner_prod( normals[0], tangent_direction) > 0 )
498 normal_direction *= (-1.0);
501 rVector = normal_direction;
514 bool is_curved =
false;
515 std::vector<array_1d<double, 3> > normals;
521 this->
HermiteInterpolation( pCondition->GetGeometry()[0], pCondition->GetGeometry()[1], normals[0], normals[1], rVector, 0.5);
538 bool is_curved =
false;
539 std::vector<array_1d<double, 3> > normals;
543 double baricenter = 2.0/3.0;
556 MidPoint = 0.5 * (pCondition->GetGeometry()[2] - pCondition->GetGeometry()[1]);
557 Normal = 0.5 * (normals[2] + normals[1]);
559 this->
HermiteInterpolation( pCondition->GetGeometry()[0], MidPoint, normals[0], Normal, Curve, baricenter);
564 MidPoint = 0.5 * (pCondition->GetGeometry()[2] - pCondition->GetGeometry()[0]);
565 Normal = 0.5 * (normals[2] + normals[0]);
568 this->
HermiteInterpolation( pCondition->GetGeometry()[1], MidPoint, normals[1], Normal, Curve, baricenter);
573 MidPoint = 0.5 * (pCondition->GetGeometry()[1] - pCondition->GetGeometry()[0]);
574 Normal = 0.5 * (normals[1] + normals[0]);
576 this->
HermiteInterpolation( pCondition->GetGeometry()[2], MidPoint, normals[2], Normal, Curve, baricenter);
591 void HermiteInterpolation(
const array_1d<double,3 >& rP1,
const array_1d<double,3 >& rP2,
const array_1d<double,3 >& rN1,
const array_1d<double,3 >& rN2,
array_1d<double,3 >& rD,
double s)
600 double projection = 0.0;
601 for(
unsigned int i = 0;
i<3;
i++ )
602 projection += T1[
i] * rN1[
i];
604 T1 -= ( projection * rN1 );
606 double modulus =
norm_2(T1);
615 for(
unsigned int i = 0;
i<3;
i++ )
616 projection += T2[
i] * rN2[
i];
618 T2 -= ( projection * rN2 );
629 modulus =
norm_2(rP2-rP1);
631 projection =
norm_2(M)/modulus;
634 double h00 = 2.0 * projection * projection * projection - 3.0 * projection * projection + 1.0;
635 double h10 = projection * projection * projection - 2.0 * projection * projection + projection;
636 double h01 = -2.0 * projection * projection * projection + 3.0 * projection * projection;
637 double h11 = projection * projection * projection - projection * projection;
641 rD += h10 * modulus * T1;
643 rD += h11 * modulus * T2;
646 M = (s * rP2 + (1-s) * rP1);
680 bool refine_condition =
false;
687 bool refine_candidate =
false;
691 refine_candidate =
false;
692 i_cond->Set(TO_REFINE,
false);
695 if( i_cond->Is(BOUNDARY) )
696 refine_candidate =
true;
698 refine_candidate =
false;
701 refine_candidate =
true;
705 if( refine_candidate ){
712 if( refine_candidate ){
715 if( i_cond->IsNot(TO_ERASE) ){
719 if( refine_condition ){
720 i_cond->Set(TO_REFINE);
725 if( refine_condition )
726 i_cond->Set(TO_REFINE);
731 if( this->mEchoLevel > 0 )
732 std::cout<<
" Condition "<<i_cond->Id()<<
" TO_ERASE "<<std::endl;
745 void GenerateNewNodes(
ModelPart& rModelPart, std::vector<NodeType::Pointer>& list_of_nodes, std::vector<ConditionType::Pointer>& list_of_conditions)
753 NodeType::Pointer pNode;
769 std::vector<double> ShapeFunctionsN;
773 unsigned int size = 0;
774 unsigned int count = 0;
778 if( i_cond->Is(TO_REFINE) )
783 size = rGeometry.
size();
785 ShapeFunctionsN.resize(size);
790 rGeometry[1].
X(), rGeometry[1].
Y(),
796 rGeometry[1].
X(), rGeometry[1].
Y(), rGeometry[1].
Z(),
797 rGeometry[2].
X(), rGeometry[2].
Y(), rGeometry[2].
Z(),
804 pNode = Kratos::make_intrusive<Node>(
id,
xc,
yc, zc );
813 for(Node::DofsContainerType::iterator i_dof = ReferenceDofs.begin(); i_dof != ReferenceDofs.end(); ++i_dof)
819 for(
unsigned int i = 0;
i<size;
i++ )
828 (pNewDof)->FreeDof();
831 std::fill(ShapeFunctionsN.begin(), ShapeFunctionsN.end(), 1.0/
double(size));
837 pNode->Set(NEW_ENTITY);
838 pNode->Set(BOUNDARY);
841 pNode->SetValue(MODEL_PART_NAMES, rGeometry[0].
GetValue(MODEL_PART_NAMES));
846 list_of_nodes.push_back(pNode);
847 list_of_conditions.push_back(*(i_cond.base()));
875 pNode->FastGetSolutionStepValue(NODAL_H) = rGeometry.DomainSize();
878 noalias(pNode->FastGetSolutionStepValue(NORMAL)) = pCondition->GetValue(NORMAL);
881 const array_1d<double,3>& Displacement = pNode->FastGetSolutionStepValue(DISPLACEMENT);
882 pNode->X0() = pNode->X() - Displacement[0];
883 pNode->Y0() = pNode->Y() - Displacement[1];
884 pNode->Z0() = pNode->Z() - Displacement[2];
887 unsigned int count = 0;
888 for(
unsigned int i = 0;
i<rGeometry.size();
i++ )
890 if ( rGeometry[
i].SolutionStepsDataHas(CONTACT_FORCE) ) {
891 if(
norm_2(rGeometry[
i].FastGetSolutionStepValue(CONTACT_FORCE)) == 0 )
897 pNode->FastGetSolutionStepValue(CONTACT_FORCE).clear();
911 std::vector<ConditionType::Pointer> list_of_new_conditions;
915 ConditionType::Pointer pCondition;
921 for(std::vector<ConditionType::Pointer>::iterator i_cond = list_of_conditions.begin(); i_cond!= list_of_conditions.end(); ++i_cond)
925 size = rGeometry.
size();
932 Nodes(0) = rGeometry(0);
933 Nodes(1) = list_of_nodes[
counter];
935 pCondition = (*i_cond)->Clone(
id, Nodes);
938 pCondition->Set(NEW_ENTITY);
944 list_of_new_conditions.push_back(pCondition);
947 Nodes(0) = list_of_nodes[
counter];
948 Nodes(1) = rGeometry(1);
950 pCondition = (*i_cond)->Clone(
id, Nodes);
953 pCondition->Set(NEW_ENTITY);
960 list_of_new_conditions.push_back(pCondition);
966 Nodes(0) = rGeometry(0);
967 Nodes(1) = rGeometry(1);
968 Nodes(2) = list_of_nodes[
counter];
970 pCondition = (*i_cond)->Clone(
id, Nodes);
973 pCondition->Set(NEW_ENTITY);
979 list_of_new_conditions.push_back(pCondition);
982 Nodes(0) = rGeometry(1);
983 Nodes(1) = rGeometry(2);
984 Nodes(2) = list_of_nodes[
counter];
987 pCondition = (*i_cond)->Clone(
id, Nodes);
990 pCondition->Set(NEW_ENTITY);
997 list_of_new_conditions.push_back(pCondition);
1001 Nodes(0) = rGeometry(2);
1002 Nodes(1) = rGeometry(0);
1003 Nodes(2) = list_of_nodes[
counter];
1006 pCondition = (*i_cond)->Clone(
id, Nodes);
1009 pCondition->Set(NEW_ENTITY);
1016 list_of_new_conditions.push_back(pCondition);
1022 (*i_cond)->Set(TO_ERASE);
1023 (*i_cond)->Set(TO_REFINE,
false);
1038 list_of_conditions = list_of_new_conditions;
1053 pNewCondition->SetValue( MASTER_NODES , pOldCondition->GetValue(MASTER_NODES) );
1054 pNewCondition->SetValue( NORMAL , pOldCondition->GetValue(NORMAL) );
1055 pNewCondition->SetValue( CAUCHY_STRESS_VECTOR , pOldCondition->GetValue(CAUCHY_STRESS_VECTOR) );
1056 pNewCondition->SetValue( DEFORMATION_GRADIENT , pOldCondition->GetValue(DEFORMATION_GRADIENT) );
1069 if(list_of_nodes.size()){
1072 for(std::vector<NodeType::Pointer>::iterator i_node = list_of_nodes.begin(); i_node!= list_of_nodes.end(); ++i_node)
1074 rModelPart.
Nodes().push_back(*(i_node));
1088 if(list_of_conditions.size()){
1094 for(std::vector<ConditionType::Pointer>::iterator i_cond = list_of_conditions.begin(); i_cond!= list_of_conditions.end(); ++i_cond)
1101 if( this->mEchoLevel > 0 )
1102 std::cout<<
" [ CONDITIONS ( inserted : "<<list_of_conditions.size()<<
" ) ]"<<std::endl;
1104 mrRemesh.
Info->InsertedBoundaryConditions = list_of_conditions.size();
1130 PreservedConditions.swap(rModelPart.
Conditions());
1132 for(ModelPart::ConditionsContainerType::iterator i_cond = PreservedConditions.begin(); i_cond!= PreservedConditions.end(); ++i_cond)
1134 if(i_cond->IsNot(TO_ERASE))
1138 if( this->mEchoLevel > 0 )
1139 std::cout<<
" [ CONDITIONS ( erased : "<<PreservedConditions.size()-rModelPart.
Conditions().
size()<<
" ) ]"<<std::endl;
1232 rOStream << std::endl;
Base class for all Conditions.
Definition: condition.h:59
Dof represents a degree of freedom (DoF).
Definition: dof.h:86
const VariableData & GetVariable() const
Definition: dof.h:303
Dof * Pointer
Pointer definition of Dof.
Definition: dof.h:93
Base class for all Elements.
Definition: element.h:60
virtual void CalculateOnIntegrationPoints(const Variable< bool > &rVariable, std::vector< bool > &rOutput, const ProcessInfo &rCurrentProcessInfo)
Definition: element.h:719
bool Is(Flags const &rOther) const
Definition: flags.h:274
TVariableType::Type & GetValue(const TVariableType &rThisVariable)
Definition: geometrical_object.h:248
GeometryType & GetGeometry()
Returns the reference of the geometry.
Definition: geometrical_object.h:158
Geometry base class.
Definition: geometry.h:71
void SetValue(const TVariableType &rThisVariable, typename TVariableType::Type const &rValue)
Definition: geometry.h:617
SizeType size() const
Definition: geometry.h:518
virtual double DomainSize() const
This method calculate and return length, area or volume of this geometry depending to it's dimension.
Definition: geometry.h:1371
Short class definition.
Definition: mesh_data_transfer_utilities.hpp:46
void CalculateCenterAndSearchRadius(const std::vector< std::vector< double > > &rPointCoordinates, std::vector< double > &rCenter, double &rRadius)
Definition: mesh_data_transfer_utilities.hpp:334
void Interpolate(Geometry< Node > &geom, const std::vector< double > &N, VariablesList &rVariablesList, Node::Pointer pnode, double alpha=1.0)
Definition: mesh_data_transfer_utilities.cpp:1435
The base class for processes passed to the solution scheme.
Definition: mesher_process.hpp:37
Short class definition.
Definition: mesher_utilities.hpp:49
static unsigned int GetMaxConditionId(ModelPart &rModelPart)
Definition: mesher_utilities.hpp:1461
bool CheckContactActive(GeometryType &rConditionGeometry, bool &rSemiActiveContact, std::vector< bool > &rSemiActiveNodes)
Definition: mesher_utilities.cpp:1847
bool CheckConditionInBox(Condition::Pointer &pCondition, SpatialBoundingBox &rRefiningBox, ProcessInfo &rCurrentProcessInfo)
Definition: mesher_utilities.cpp:1559
static unsigned int GetMaxNodeId(ModelPart &rModelPart)
Definition: mesher_utilities.hpp:1408
static double CalculateBoundarySize(Geometry< Node > &rGeometry)
Definition: mesher_utilities.hpp:1078
bool CheckSubdomain(Geometry< Node > &rGeometry)
Definition: mesher_utilities.cpp:198
bool CheckContactCurvature(GeometryType &rConditionGeometry, std::vector< array_1d< double, 3 >> &rContactNormals)
Definition: mesher_utilities.cpp:1889
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
MeshType::ConditionsContainerType ConditionsContainerType
Condintions container. A vector set of Conditions with their Id's as key.
Definition: model_part.h:183
ConditionIterator ConditionsBegin(IndexType ThisIndex=0)
Definition: model_part.h:1361
std::string & Name()
Definition: model_part.h:1811
IndexType GetBufferSize() const
This method gets the suffer size of the model part database.
Definition: model_part.h:1876
ConditionsContainerType & Conditions(IndexType ThisIndex=0)
Definition: model_part.h:1381
ProcessInfo & GetProcessInfo()
Definition: model_part.h:1746
SizeType NumberOfConditions(IndexType ThisIndex=0) const
Definition: model_part.h:1218
SizeType NumberOfNodes(IndexType ThisIndex=0) const
Definition: model_part.h:341
NodesContainerType & Nodes(IndexType ThisIndex=0)
Definition: model_part.h:507
VariablesList & GetNodalSolutionStepVariablesList()
Definition: model_part.h:549
ConditionIterator ConditionsEnd(IndexType ThisIndex=0)
Definition: model_part.h:1371
This class defines the node.
Definition: node.h:65
std::vector< std::unique_ptr< Dof< double > >> DofsContainerType
The DoF container type definition.
Definition: node.h:92
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
boost::indirect_iterator< typename TContainerType::iterator > iterator
Definition: pointer_vector_set.h:95
size_type size() const
Returns the number of elements in the container.
Definition: pointer_vector_set.h:502
void push_back(TPointerType x)
Adds a pointer to the end of the set.
Definition: pointer_vector_set.h:544
iterator begin()
Returns an iterator pointing to the beginning of the container.
Definition: pointer_vector_set.h:278
boost::indirect_iterator< typename TContainerType::const_iterator > const_iterator
Definition: pointer_vector_set.h:96
iterator end()
Returns an iterator pointing to the end of the container.
Definition: pointer_vector_set.h:314
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
Refine Mesh Boundary Process.
Definition: refine_conditions_mesher_process.hpp:50
bool RefineContactCondition(ConditionType::Pointer &pCondition, ProcessInfo &rCurrentProcessInfo)
Definition: refine_conditions_mesher_process.hpp:330
std::string Info() const override
Turn back information as a string.
Definition: refine_conditions_mesher_process.hpp:183
int mEchoLevel
Definition: refine_conditions_mesher_process.hpp:222
void CircleInterpolation(ConditionType::Pointer &pCondition, array_1d< double, 3 > &rVector)
Definition: refine_conditions_mesher_process.hpp:451
RefineConditionsMesherProcess(ModelPart &rModelPart, MesherUtilities::MeshingParameters &rRemeshingParameters, int EchoLevel)
Default constructor.
Definition: refine_conditions_mesher_process.hpp:73
void SelectBoundaryToRefine(ModelPart &rModelPart)
Definition: refine_conditions_mesher_process.hpp:674
virtual void SetNewConditionVariables(ConditionType::Pointer &pOldCondition, ConditionType::Pointer &pNewCondition)
Definition: refine_conditions_mesher_process.hpp:1048
void HermiteInterpolation(ConditionType::Pointer &pCondition, array_1d< double, 3 > &rVector)
Definition: refine_conditions_mesher_process.hpp:510
MesherUtilities mMesherUtilities
Definition: refine_conditions_mesher_process.hpp:220
void GenerateNewConditions(ModelPart &rModelPart, std::vector< NodeType::Pointer > &list_of_nodes, std::vector< ConditionType::Pointer > &list_of_conditions)
Definition: refine_conditions_mesher_process.hpp:907
void HermiteTriangleInterpolation(ConditionType::Pointer &pCondition, array_1d< double, 3 > &rVector)
Definition: refine_conditions_mesher_process.hpp:534
bool RefineOnDistance(ConditionType::Pointer &pCondition, double &critical_size)
Definition: refine_conditions_mesher_process.hpp:265
void SetNodalPosition(ConditionType::Pointer &pCondition, ProcessInfo &rCurrentProcessInfo, double &xc, double &yc, double &zc)
Definition: refine_conditions_mesher_process.hpp:402
PointerVectorSet< ConditionType, IndexedObject > ConditionsContainerType
Definition: refine_conditions_mesher_process.hpp:64
ConditionType::GeometryType GeometryType
Definition: refine_conditions_mesher_process.hpp:61
ConditionsContainerType::const_iterator ConditionConstantIterator
Definition: refine_conditions_mesher_process.hpp:66
void operator()()
This operator is provided to call the process as a function and simply calls the Execute method.
Definition: refine_conditions_mesher_process.hpp:91
bool RefineOnThreshold(ConditionType::Pointer &pCondition, ProcessInfo &rCurrentProcessInfo, double &critical_size)
Definition: refine_conditions_mesher_process.hpp:228
void SetConditionsToModelPart(ModelPart &rModelPart, std::vector< ConditionType::Pointer > &list_of_conditions)
Definition: refine_conditions_mesher_process.hpp:1084
void SetNodesToModelPart(ModelPart &rModelPart, std::vector< NodeType::Pointer > &list_of_nodes)
Definition: refine_conditions_mesher_process.hpp:1065
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: refine_conditions_mesher_process.hpp:189
ConditionsContainerType::iterator ConditionIterator
Definition: refine_conditions_mesher_process.hpp:65
ModelPart::PropertiesType PropertiesType
Definition: refine_conditions_mesher_process.hpp:60
void GenerateNewNodes(ModelPart &rModelPart, std::vector< NodeType::Pointer > &list_of_nodes, std::vector< ConditionType::Pointer > &list_of_conditions)
Definition: refine_conditions_mesher_process.hpp:745
MesherUtilities::MeshingParameters & mrRemesh
Definition: refine_conditions_mesher_process.hpp:218
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: refine_conditions_mesher_process.hpp:195
bool RefineBoundaryCondition(ConditionType::Pointer &pCondition, ProcessInfo &rCurrentProcessInfo)
Definition: refine_conditions_mesher_process.hpp:283
ModelPart::NodeType NodeType
Definition: refine_conditions_mesher_process.hpp:58
void CleanModelPartConditions(ModelPart &rModelPart)
Definition: refine_conditions_mesher_process.hpp:1122
virtual void SetNewNodeVariables(ModelPart &rModelPart, ConditionType::Pointer &pCondition, NodeType::Pointer &pNode)
Definition: refine_conditions_mesher_process.hpp:862
ModelPart & mrModelPart
Definition: refine_conditions_mesher_process.hpp:216
ModelPart::ConditionType ConditionType
Definition: refine_conditions_mesher_process.hpp:59
void Execute() override
Execute method is used to execute the Process algorithms.
Definition: refine_conditions_mesher_process.hpp:103
KRATOS_CLASS_POINTER_DEFINITION(RefineConditionsMesherProcess)
Pointer definition of Process.
virtual ~RefineConditionsMesherProcess()
Destructor.
Definition: refine_conditions_mesher_process.hpp:83
void HermiteInterpolation(const array_1d< double, 3 > &rP1, const array_1d< double, 3 > &rP2, const array_1d< double, 3 > &rN1, const array_1d< double, 3 > &rN2, array_1d< double, 3 > &rD, double s)
Definition: refine_conditions_mesher_process.hpp:591
PointerVector< NodeType > PointsArrayType
Definition: refine_conditions_mesher_process.hpp:62
Holds a list of variables and their position in VariablesListDataValueContainer.
Definition: variables_list.h:50
BOOST_UBLAS_INLINE void clear()
Definition: array_1d.h:325
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
static int EchoLevel
Definition: co_sim_EMPIRE_API.h:42
Parameters GetValue(Parameters &rParameters, const std::string &rEntry)
Definition: add_kratos_parameters_to_python.cpp:53
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
TExpressionType::data_type norm_2(AMatrix::MatrixExpression< TExpressionType, TCategory > const &TheExpression)
Definition: amatrix_interface.h:625
TExpression1Type::data_type inner_prod(AMatrix::MatrixExpression< TExpression1Type, TCategory1 > const &First, AMatrix::MatrixExpression< TExpression2Type, TCategory2 > const &Second)
Definition: amatrix_interface.h:592
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
TABLE_NUMBER_ANGULAR_VELOCITY TABLE_NUMBER_MOMENT I33 BEAM_INERTIA_ROT_UNIT_LENGHT_Y KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BEAM_INERTIA_ROT_UNIT_LENGHT_Z) typedef std double
Definition: DEM_application_variables.h:182
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
v
Definition: generate_convection_diffusion_explicit_element.py:114
alpha
Definition: generate_convection_diffusion_explicit_element.py:113
int count
Definition: generate_frictional_mortar_condition.py:212
float radius
Definition: mesh_to_mdpa_converter.py:18
float xc
Definition: rotating_cone.py:77
float yc
Definition: rotating_cone.py:78
int counter
Definition: script_THERMAL_CORRECT.py:218
integer i
Definition: TensorModule.f:17
subroutine d1(DSTRAN, D, dtime, NDI, NSHR, NTENS)
Definition: TensorModule.f:594
float factor
for node in (self.combined_model_part).Nodes: pold = node.GetSolutionStepValue(PRESSURE,...
Definition: ulf_PGLASS.py:254
Definition: mesher_utilities.hpp:631
MeshingInfoParameters::Pointer Info
Definition: mesher_utilities.hpp:681
Flags Options
Definition: mesher_utilities.hpp:645
RefiningParameters::Pointer Refine
Definition: mesher_utilities.hpp:684
std::string SubModelPartName
Definition: mesher_utilities.hpp:642