51 #if !defined(KRATOS_MARK_BAD_ELEMENTS_PROCESS_INCLUDED )
52 #define KRATOS_MARK_BAD_ELEMENTS_PROCESS_INCLUDED
70 #include "custom_utilities/geometry_utilities2D.h"
151 double x2 = pgeom[2].X();
153 double y0 = pgeom[0].Y();
154 double y1 = pgeom[1].Y();
155 double y2 = pgeom[2].Y();
162 msJ(0,0)=2.0*(
x1-x0);
163 msJ(0,1)=2.0*(y1-y0);
164 msJ(1,0)=2.0*(
x2-x0);
165 msJ(1,1)=2.0*(y2-y0);
168 double detJ = msJ(0,0)*msJ(1,1)-msJ(0,1)*msJ(1,0);
170 msJinv(0,0) = msJ(1,1);
171 msJinv(0,1) = -msJ(0,1);
172 msJinv(1,0) = -msJ(1,0);
173 msJinv(1,1) = msJ(0,0);
182 pgeom[0].GetSolutionStepValue(IS_BOUNDARY) = 1;
183 pgeom[1].GetSolutionStepValue(IS_BOUNDARY) = 1;
184 pgeom[2].GetSolutionStepValue(IS_BOUNDARY) = 1;
191 double x0_2 = x0*x0 + y0*y0;
192 double x1_2 =
x1*
x1 + y1*y1;
193 double x2_2 =
x2*
x2 + y2*y2;
199 ms_rhs[0] = (x1_2 - x0_2);
200 ms_rhs[1] = (x2_2 - x0_2);
205 double radius = sqrt(pow(msc[0]-x0,2)+pow(msc[1]-y0,2));
209 h = pgeom[0].FastGetSolutionStepValue(NODAL_H);
210 h += pgeom[1].FastGetSolutionStepValue(NODAL_H);
211 h += pgeom[2].FastGetSolutionStepValue(NODAL_H);
244 std::string
Info()
const override
246 return "MarkBadElementsProcess";
252 rOStream <<
"MarkBadElementsProcess";
370 rOStream << std::endl;
Definition: amatrix_interface.h:41
Short class definition.
Definition: mark_bad_elements_process.h:106
void operator()()
Definition: mark_bad_elements_process.h:134
MarkBadElementsProcess(ModelPart &model_part)
Default constructor.
Definition: mark_bad_elements_process.h:119
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: mark_bad_elements_process.h:256
std::string Info() const override
Turn back information as a string.
Definition: mark_bad_elements_process.h:244
KRATOS_CLASS_POINTER_DEFINITION(MarkBadElementsProcess)
Pointer definition of PushStructureProcess.
~MarkBadElementsProcess() override
Destructor.
Definition: mark_bad_elements_process.h:125
void Execute() override
Execute method is used to execute the Process algorithms.
Definition: mark_bad_elements_process.h:144
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: mark_bad_elements_process.h:250
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
ElementIterator ElementsBegin(IndexType ThisIndex=0)
Definition: model_part.h:1169
ElementIterator ElementsEnd(IndexType ThisIndex=0)
Definition: model_part.h:1179
The base class for all processes in Kratos.
Definition: process.h:49
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
im
Definition: GenerateCN.py:100
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
AMatrix::MatrixProductExpression< TExpression1Type, TExpression2Type > prod(AMatrix::MatrixExpression< TExpression1Type, TCategory1 > const &First, AMatrix::MatrixExpression< TExpression2Type, TCategory2 > const &Second)
Definition: amatrix_interface.h:568
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
model_part
Definition: face_heat.py:14
h
Definition: generate_droplet_dynamics.py:91
x2
Definition: generate_frictional_mortar_condition.py:122
x1
Definition: generate_frictional_mortar_condition.py:121
float radius
Definition: mesh_to_mdpa_converter.py:18
e
Definition: run_cpp_mpi_tests.py:31