|
|
typedef Scheme< TSparseSpace, TDenseSpace > | SchemeType |
|
typedef SchemeType::Pointer | SchemePointerType |
|
typedef BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::Pointer | BuilderSolverPointerType |
|
typedef ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | SolvingStrategyType |
|
enum | FlagsList {
Flag0 = BlockType(1)
, Flag1 = BlockType(1) << 1
, Flag2 = BlockType(1) << 2
, Flag3 = BlockType(1) << 3
,
Flag4 = BlockType(1) << 4
, Flag5 = BlockType(1) << 5
, Flag6 = BlockType(1) << 6
, Flag7 = BlockType(1) << 7
,
Flag8 = BlockType(1) << 8
, Flag9 = BlockType(1) << 9
, Flag10 = BlockType(1) << 10
, Flag11 = BlockType(1) << 11
,
Flag12 = BlockType(1) << 12
, Flag13 = BlockType(1) << 13
, Flag14 = BlockType(1) << 14
, Flag15 = BlockType(1) << 15
,
Flag16 = BlockType(1) << 16
, Flag17 = BlockType(1) << 17
, Flag18 = BlockType(1) << 18
, Flag19 = BlockType(1) << 19
,
Flag20 = BlockType(1) << 20
, Flag21 = BlockType(1) << 21
, Flag22 = BlockType(1) << 22
, Flag23 = BlockType(1) << 23
,
Flag24 = BlockType(1) << 24
, Flag25 = BlockType(1) << 25
, Flag26 = BlockType(1) << 26
, Flag27 = BlockType(1) << 27
,
Flag28 = BlockType(1) << 28
, Flag29 = BlockType(1) << 29
, Flag30 = BlockType(1) << 30
} |
|
typedef int64_t | BlockType |
|
typedef int64_t | FlagType |
|
typedef std::size_t | IndexType |
|
|
| KRATOS_DEFINE_LOCAL_FLAG (PERFORM_STEP1) |
|
| KRATOS_DEFINE_LOCAL_FLAG (DO_EXPENSIVE_CHECKS) |
|
| KRATOS_DEFINE_LOCAL_FLAG (CALCULATE_EXACT_DISTANCES_TO_PLANE) |
|
|
| KRATOS_CLASS_POINTER_DEFINITION (VariationalDistanceCalculationProcess) |
| Pointer definition of VariationalDistanceCalculationProcess. More...
|
|
|
| VariationalDistanceCalculationProcess (ModelPart &rBaseModelPart, typename TLinearSolver::Pointer pLinearSolver, unsigned int MaxIterations=10, Flags Options=CALCULATE_EXACT_DISTANCES_TO_PLANE.AsFalse(), std::string AuxPartName="RedistanceCalculationPart", double Coefficient1=0.01, double Coefficient2=0.1) |
|
| VariationalDistanceCalculationProcess (ModelPart &rBaseModelPart, typename TLinearSolver::Pointer pLinearSolver, BuilderSolverPointerType pBuilderAndSolver, unsigned int MaxIterations=10, Flags Options=CALCULATE_EXACT_DISTANCES_TO_PLANE.AsFalse(), std::string AuxPartName="RedistanceCalculationPart", double Coefficient1=0.01, double Coefficient2=0.1) |
| Constructor with custom Builder And Solver. More...
|
|
| ~VariationalDistanceCalculationProcess () override |
| Destructor. More...
|
|
|
void | operator() () |
|
|
void | Execute () override |
| Execute method is used to execute the Process algorithms. More...
|
|
void | Clear () override |
| This method clears the assignation of the conditions. More...
|
|
|
std::string | Info () const override |
| Turn back information as a string. More...
|
|
void | PrintInfo (std::ostream &rOStream) const override |
| Print information about this object. More...
|
|
void | PrintData (std::ostream &rOStream) const override |
| Print object's data. More...
|
|
| KRATOS_CLASS_POINTER_DEFINITION (Process) |
| Pointer definition of Process. More...
|
|
| Process () |
| Default constructor. More...
|
|
| Process (const Flags options) |
|
| ~Process () override |
| Destructor. More...
|
|
void | operator() () |
| This operator is provided to call the process as a function and simply calls the Execute method. More...
|
|
virtual Process::Pointer | Create (Model &rModel, Parameters ThisParameters) |
| This method creates an pointer of the process. More...
|
|
virtual void | ExecuteInitialize () |
| This function is designed for being called at the beginning of the computations right after reading the model and the groups. More...
|
|
virtual void | ExecuteBeforeSolutionLoop () |
| This function is designed for being execute once before the solution loop but after all of the solvers where built. More...
|
|
virtual void | ExecuteInitializeSolutionStep () |
| This function will be executed at every time step BEFORE performing the solve phase. More...
|
|
virtual void | ExecuteFinalizeSolutionStep () |
| This function will be executed at every time step AFTER performing the solve phase. More...
|
|
virtual void | ExecuteBeforeOutputStep () |
| This function will be executed at every time step BEFORE writing the output. More...
|
|
virtual void | ExecuteAfterOutputStep () |
| This function will be executed at every time step AFTER writing the output. More...
|
|
virtual void | ExecuteFinalize () |
| This function is designed for being called at the end of the computations. More...
|
|
virtual int | Check () |
| This function is designed for being called after ExecuteInitialize ONCE to verify that the input is correct. More...
|
|
virtual const Parameters | GetDefaultParameters () const |
| This method provides the defaults parameters to avoid conflicts between the different constructors. More...
|
|
Flags & | operator= (Flags const &rOther) |
| Assignment operator. More...
|
|
| operator bool () const |
|
Flags | operator~ () const |
|
bool | operator! () const |
|
void | AssignFlags (Flags const &rOther) |
|
void | Set (const Flags ThisFlag) |
|
void | Set (const Flags ThisFlag, bool Value) |
|
void | Reset (const Flags ThisFlag) |
|
void | Flip (const Flags ThisFlag) |
|
void | SetPosition (IndexType Position, bool Value=true) |
|
bool | GetPosition (IndexType Position) const |
|
void | FlipPosition (IndexType Position) |
|
void | ClearPosition (IndexType Position) |
|
void | Clear () |
|
Flags | AsFalse () const |
|
bool | Is (Flags const &rOther) const |
|
bool | IsDefined (Flags const &rOther) const |
|
bool | IsNot (Flags const &rOther) const |
|
bool | IsNotDefined (Flags const &rOther) const |
|
| KRATOS_CLASS_POINTER_DEFINITION (Flags) |
| Pointer definition of Flags. More...
|
|
const Flags & | operator|= (const Flags &Other) |
|
const Flags & | operator&= (const Flags &Other) |
|
| Flags () |
| Default constructor. More...
|
|
| Flags (Flags const &rOther) |
| Copy constructor. More...
|
|
virtual | ~Flags () |
| Destructor. More...
|
|
template<unsigned int TDim, class TSparseSpace, class TDenseSpace, class TLinearSolver>
class Kratos::VariationalDistanceCalculationProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver >
Short class definition.
takes a model part full of SIMPLICIAL ELEMENTS (triangles and tetras) and recomputes a signed distance function mantaining as much as possible the position of the zero of the function prior to the call.
This is achieved by minimizing the function ( 1 - norm( gradient( distance ) )**2 with the restriction that "distance" is a finite elment function
template<unsigned int TDim, class TSparseSpace , class TDenseSpace , class TLinearSolver >
This process recomputed the distance function mantaining the zero of the existing distance distribution for this reason the DISTANCE should be initialized to values distinct from zero in at least some portions of the domain alternatively, the DISTANCE shall be fixed to zero at least on some nodes, and the process will compute a positive distance respecting that zero
- Parameters
-
base_model_parr | - is the model part on the top of which the calculation will be performed |
plinear_solver | - linear solver to be used internally @max_iterations - maximum number of iteration to be employed in the nonlinear optimization process.
- can also be set to 0 if a (very) rough approximation is enough
|
EXAMPLE OF USAGE FROM PYTHON:
class distance_linear_solver_settings: solver_type = "AMGCL" tolerance = 1E-3 max_iteration = 200 scaling = False krylov_type = "CG" smoother_type = "SPAI0" verbosity = 0
import linear_solver_factory distance_linear_solver = linear_solver_factory.ConstructSolver(distance_linear_solver_settings)
max_iterations=1 distance_calculator = VariationalDistanceCalculationProcess2D(fluid_model_part, distance_linear_solver, max_iterations) distance_calculator.Execute()