KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
Functions | |
def | convert_active_inactive_int (list_active) |
Variables | |
bool | do_simplifications = False |
string | mode = "c" |
bool | impose_partion_of_unity = False |
list | dim_combinations = [2,3,3,3,3] |
list | nnodes_combinations = [2,3,4,3,4] |
list | nnodes_master_combinations = [2,3,4,4,3] |
int | normal_combs = 2 |
string | lhs_string = "" |
SUBSTITUTION ################################. More... | |
string | lhs_template_begin_string = "\n/***********************************************************************************/\n/***********************************************************************************/\n\ntemplate<>\nvoid PenaltyMethodFrictionlessMortarContactCondition<TDim, TNumNodes, TNormalVariation, TNumNodesMaster>::CalculateLocalLHS(\n Matrix& rLocalLHS,\n const MortarConditionMatrices& rMortarConditionMatrices,\n const DerivativeDataType& rDerivativeData,\n const IndexType rActiveInactive,\n const ProcessInfo& rCurrentProcessInfo\n )\n{\n // Initialize\n for (std::size_t i = 0; i < MatrixSize; ++i)\n for (std::size_t j = 0; j < MatrixSize; ++j)\n rLocalLHS(i, j) = 0.0;\n\n // The geometry of the condition\n const GeometryType& r_geometry = this->GetParentGeometry();\n\n // Initialize values\n const BoundedMatrix<double, TNumNodes, TDim>& u1 = rDerivativeData.u1;\n const BoundedMatrix<double, TNumNodesMaster, TDim>& u2 = rDerivativeData.u2;\n const BoundedMatrix<double, TNumNodes, TDim>& X1 = rDerivativeData.X1;\n const BoundedMatrix<double, TNumNodesMaster, TDim>& X2 = rDerivativeData.X2;\n \n const BoundedMatrix<double, TNumNodes, TDim>& NormalSlave = rDerivativeData.NormalSlave;\n\n // The Penalty parameters\n const array_1d<double, TNumNodes> DynamicFactor = MortarUtilities::GetVariableVector<TNumNodes>(this->GetParentGeometry(), DYNAMIC_FACTOR);\n const array_1d<double, TNumNodes>& PenaltyParameter = rDerivativeData.PenaltyParameter;\n \n // Mortar operators\n const BoundedMatrix<double, TNumNodes, TNumNodesMaster>& MOperator = rMortarConditionMatrices.MOperator;\n const BoundedMatrix<double, TNumNodes, TNumNodes>& DOperator = rMortarConditionMatrices.DOperator;\n // Mortar operators derivatives\n const array_1d<BoundedMatrix<double, TNumNodes, TNumNodesMaster>, SIZEDERIVATIVES2>& DeltaMOperator = rMortarConditionMatrices.DeltaMOperator;\n const array_1d<BoundedMatrix<double, TNumNodes, TNumNodes>, SIZEDERIVATIVES2>& DeltaDOperator = rMortarConditionMatrices.DeltaDOperator;\n\n" |
string | lhs_template_end_string = "\n}\n" |
string | rhs_string = "" |
string | rhs_template_begin_string = "\n/***********************************************************************************/\n/***********************************************************************************/\n\ntemplate<>\nvoid PenaltyMethodFrictionlessMortarContactCondition<TDim, TNumNodes, TNormalVariation, TNumNodesMaster>::CalculateLocalRHS(\n Vector& rLocalRHS,\n const MortarConditionMatrices& rMortarConditionMatrices,\n const DerivativeDataType& rDerivativeData,\n const IndexType rActiveInactive,\n const ProcessInfo& rCurrentProcessInfo\n )\n{\n // Initialize\n for (std::size_t i = 0; i < MatrixSize; ++i)\n rLocalRHS[i] = 0.0;\n\n // The geometry of the condition\n const GeometryType& r_geometry = this->GetParentGeometry();\n\n // Initialize values\n const BoundedMatrix<double, TNumNodes, TDim>& u1 = rDerivativeData.u1;\n const BoundedMatrix<double, TNumNodesMaster, TDim>& u2 = rDerivativeData.u2;\n const BoundedMatrix<double, TNumNodes, TDim>& X1 = rDerivativeData.X1;\n const BoundedMatrix<double, TNumNodesMaster, TDim>& X2 = rDerivativeData.X2;\n \n const BoundedMatrix<double, TNumNodes, TDim>& NormalSlave = rDerivativeData.NormalSlave;\n\n // The Penalty parameters\n const array_1d<double, TNumNodes> DynamicFactor = MortarUtilities::GetVariableVector<TNumNodes>(this->GetParentGeometry(), DYNAMIC_FACTOR);\n const array_1d<double, TNumNodes>& PenaltyParameter = rDerivativeData.PenaltyParameter;\n \n // Mortar operators\n const BoundedMatrix<double, TNumNodes, TNumNodesMaster>& MOperator = rMortarConditionMatrices.MOperator;\n const BoundedMatrix<double, TNumNodes, TNumNodes>& DOperator = rMortarConditionMatrices.DOperator;\n\n" |
string | rhs_template_end_string = "\n}\n" |
int | output_count = 0 |
int | total_combs = normal_combs * len(nnodes_combinations) |
string | normalvarstring = "false" |
number_dof = dim * (nnodes_master + nnodes) | |
u1 = custom_sympy_fe_utilities.DefineMatrix('u1',nnodes,dim) | |
u2 = custom_sympy_fe_utilities.DefineMatrix('u2',nnodes_master,dim) | |
NormalGap = custom_sympy_fe_utilities.DefineVector('NormalGap',nnodes) | |
DOperator = custom_sympy_fe_utilities.DefineMatrix('DOperator',nnodes,nnodes) | |
MOperator = custom_sympy_fe_utilities.DefineMatrix('MOperator',nnodes,nnodes_master) | |
NormalSlave = custom_sympy_fe_utilities.DefineMatrix('NormalSlave',nnodes,dim) | |
X1 = custom_sympy_fe_utilities.DefineMatrix('X1',nnodes,dim) | |
X2 = custom_sympy_fe_utilities.DefineMatrix('X2',nnodes_master,dim) | |
x1 = X1 + u1 | |
x2 = X2 + u2 | |
DynamicFactor = custom_sympy_fe_utilities.DefineVector('DynamicFactor',nnodes) | |
PenaltyParameter = custom_sympy_fe_utilities.DefineVector('PenaltyParameter',nnodes) | |
w1 = custom_sympy_fe_utilities.DefineMatrix('w1',nnodes,dim) | |
w2 = custom_sympy_fe_utilities.DefineMatrix('w2',nnodes_master,dim) | |
list | u1_var = [] |
list | u2_var = [] |
list | u12_var = u1_var.copy() |
Dx1Mx2 = DOperator * x1 - MOperator * x2 | |
Dw1Mw2 = DOperator * w1 - MOperator * w2 | |
dofs = sympy.Matrix( sympy.zeros(number_dof, 1) ) | |
testfunc = sympy.Matrix( sympy.zeros(number_dof, 1) ) | |
int | count = 0 |
int | rv_galerkin = 0 |
FUNCTIONAL DEFINITION ############################. More... | |
tuple | augmented_contact_pressure = (PenaltyParameter[node] * NormalGap[node]) |
rv = sympy.Matrix( sympy.zeros(1, 1) ) | |
Complete functional. More... | |
rhs | |
lhs | |
lhs_out = custom_sympy_fe_utilities.OutputMatrix_CollectingFactorsNonZero(lhs,"lhs", mode, 1, number_dof) | |
rhs_out = custom_sympy_fe_utilities.OutputVector_CollectingFactorsNonZero(rhs,"rhs", mode, 1, number_dof) | |
list | var_strings = [] |
DEFINE VARIABLES AND DERIVATIVES #######################. More... | |
list | var_strings_subs = [] |
list | var_strings_aux_subs = [] |
list | der_var_strings = [] |
list | der_var_list = [] |
list | der_var_used_index = [] |
first_input = open("penalty_frictionless_mortar_contact_condition_template.cpp", 'r').read() | |
FINAL SAVING ##############################. More... | |
outputstring = first_input.replace("// replace_lhs", lhs_string) | |
input = open("penalty_frictionless_mortar_contact_condition.cpp", 'r').read() | |
output = open("penalty_frictionless_mortar_contact_condition.cpp",'w') | |
def generate_penalty_frictionless_mortar_condition_non_zero.convert_active_inactive_int | ( | list_active | ) |
tuple generate_penalty_frictionless_mortar_condition_non_zero.augmented_contact_pressure = (PenaltyParameter[node] * NormalGap[node]) |
int generate_penalty_frictionless_mortar_condition_non_zero.count = 0 |
generate_penalty_frictionless_mortar_condition_non_zero.der_var_list = [] |
generate_penalty_frictionless_mortar_condition_non_zero.der_var_strings = [] |
list generate_penalty_frictionless_mortar_condition_non_zero.der_var_used_index = [] |
list generate_penalty_frictionless_mortar_condition_non_zero.dim_combinations = [2,3,3,3,3] |
bool generate_penalty_frictionless_mortar_condition_non_zero.do_simplifications = False |
generate_penalty_frictionless_mortar_condition_non_zero.dofs = sympy.Matrix( sympy.zeros(number_dof, 1) ) |
generate_penalty_frictionless_mortar_condition_non_zero.DOperator = custom_sympy_fe_utilities.DefineMatrix('DOperator',nnodes,nnodes) |
generate_penalty_frictionless_mortar_condition_non_zero.DynamicFactor = custom_sympy_fe_utilities.DefineVector('DynamicFactor',nnodes) |
generate_penalty_frictionless_mortar_condition_non_zero.first_input = open("penalty_frictionless_mortar_contact_condition_template.cpp", 'r').read() |
FINAL SAVING ##############################.
bool generate_penalty_frictionless_mortar_condition_non_zero.impose_partion_of_unity = False |
generate_penalty_frictionless_mortar_condition_non_zero.input = open("penalty_frictionless_mortar_contact_condition.cpp", 'r').read() |
generate_penalty_frictionless_mortar_condition_non_zero.lhs |
generate_penalty_frictionless_mortar_condition_non_zero.lhs_out = custom_sympy_fe_utilities.OutputMatrix_CollectingFactorsNonZero(lhs,"lhs", mode, 1, number_dof) |
string generate_penalty_frictionless_mortar_condition_non_zero.lhs_string = "" |
SUBSTITUTION ################################.
SIMPLIFICATION ##############################.
string generate_penalty_frictionless_mortar_condition_non_zero.lhs_template_begin_string = "\n/***********************************************************************************/\n/***********************************************************************************/\n\ntemplate<>\nvoid PenaltyMethodFrictionlessMortarContactCondition<TDim, TNumNodes, TNormalVariation, TNumNodesMaster>::CalculateLocalLHS(\n Matrix& rLocalLHS,\n const MortarConditionMatrices& rMortarConditionMatrices,\n const DerivativeDataType& rDerivativeData,\n const IndexType rActiveInactive,\n const ProcessInfo& rCurrentProcessInfo\n )\n{\n // Initialize\n for (std::size_t i = 0; i < MatrixSize; ++i)\n for (std::size_t j = 0; j < MatrixSize; ++j)\n rLocalLHS(i, j) = 0.0;\n\n // The geometry of the condition\n const GeometryType& r_geometry = this->GetParentGeometry();\n\n // Initialize values\n const BoundedMatrix<double, TNumNodes, TDim>& u1 = rDerivativeData.u1;\n const BoundedMatrix<double, TNumNodesMaster, TDim>& u2 = rDerivativeData.u2;\n const BoundedMatrix<double, TNumNodes, TDim>& X1 = rDerivativeData.X1;\n const BoundedMatrix<double, TNumNodesMaster, TDim>& X2 = rDerivativeData.X2;\n \n const BoundedMatrix<double, TNumNodes, TDim>& NormalSlave = rDerivativeData.NormalSlave;\n\n // The Penalty parameters\n const array_1d<double, TNumNodes> DynamicFactor = MortarUtilities::GetVariableVector<TNumNodes>(this->GetParentGeometry(), DYNAMIC_FACTOR);\n const array_1d<double, TNumNodes>& PenaltyParameter = rDerivativeData.PenaltyParameter;\n \n // Mortar operators\n const BoundedMatrix<double, TNumNodes, TNumNodesMaster>& MOperator = rMortarConditionMatrices.MOperator;\n const BoundedMatrix<double, TNumNodes, TNumNodes>& DOperator = rMortarConditionMatrices.DOperator;\n // Mortar operators derivatives\n const array_1d<BoundedMatrix<double, TNumNodes, TNumNodesMaster>, SIZEDERIVATIVES2>& DeltaMOperator = rMortarConditionMatrices.DeltaMOperator;\n const array_1d<BoundedMatrix<double, TNumNodes, TNumNodes>, SIZEDERIVATIVES2>& DeltaDOperator = rMortarConditionMatrices.DeltaDOperator;\n\n" |
string generate_penalty_frictionless_mortar_condition_non_zero.lhs_template_end_string = "\n}\n" |
string generate_penalty_frictionless_mortar_condition_non_zero.mode = "c" |
generate_penalty_frictionless_mortar_condition_non_zero.MOperator = custom_sympy_fe_utilities.DefineMatrix('MOperator',nnodes,nnodes_master) |
list generate_penalty_frictionless_mortar_condition_non_zero.nnodes_combinations = [2,3,4,3,4] |
list generate_penalty_frictionless_mortar_condition_non_zero.nnodes_master_combinations = [2,3,4,4,3] |
int generate_penalty_frictionless_mortar_condition_non_zero.normal_combs = 2 |
generate_penalty_frictionless_mortar_condition_non_zero.NormalGap = custom_sympy_fe_utilities.DefineVector('NormalGap',nnodes) |
generate_penalty_frictionless_mortar_condition_non_zero.NormalSlave = custom_sympy_fe_utilities.DefineMatrix('NormalSlave',nnodes,dim) |
string generate_penalty_frictionless_mortar_condition_non_zero.normalvarstring = "false" |
generate_penalty_frictionless_mortar_condition_non_zero.number_dof = dim * (nnodes_master + nnodes) |
generate_penalty_frictionless_mortar_condition_non_zero.output = open("penalty_frictionless_mortar_contact_condition.cpp",'w') |
int generate_penalty_frictionless_mortar_condition_non_zero.output_count = 0 |
generate_penalty_frictionless_mortar_condition_non_zero.outputstring = first_input.replace("// replace_lhs", lhs_string) |
generate_penalty_frictionless_mortar_condition_non_zero.PenaltyParameter = custom_sympy_fe_utilities.DefineVector('PenaltyParameter',nnodes) |
generate_penalty_frictionless_mortar_condition_non_zero.rhs |
generate_penalty_frictionless_mortar_condition_non_zero.rhs_out = custom_sympy_fe_utilities.OutputVector_CollectingFactorsNonZero(rhs,"rhs", mode, 1, number_dof) |
string generate_penalty_frictionless_mortar_condition_non_zero.rhs_string = "" |
string generate_penalty_frictionless_mortar_condition_non_zero.rhs_template_begin_string = "\n/***********************************************************************************/\n/***********************************************************************************/\n\ntemplate<>\nvoid PenaltyMethodFrictionlessMortarContactCondition<TDim, TNumNodes, TNormalVariation, TNumNodesMaster>::CalculateLocalRHS(\n Vector& rLocalRHS,\n const MortarConditionMatrices& rMortarConditionMatrices,\n const DerivativeDataType& rDerivativeData,\n const IndexType rActiveInactive,\n const ProcessInfo& rCurrentProcessInfo\n )\n{\n // Initialize\n for (std::size_t i = 0; i < MatrixSize; ++i)\n rLocalRHS[i] = 0.0;\n\n // The geometry of the condition\n const GeometryType& r_geometry = this->GetParentGeometry();\n\n // Initialize values\n const BoundedMatrix<double, TNumNodes, TDim>& u1 = rDerivativeData.u1;\n const BoundedMatrix<double, TNumNodesMaster, TDim>& u2 = rDerivativeData.u2;\n const BoundedMatrix<double, TNumNodes, TDim>& X1 = rDerivativeData.X1;\n const BoundedMatrix<double, TNumNodesMaster, TDim>& X2 = rDerivativeData.X2;\n \n const BoundedMatrix<double, TNumNodes, TDim>& NormalSlave = rDerivativeData.NormalSlave;\n\n // The Penalty parameters\n const array_1d<double, TNumNodes> DynamicFactor = MortarUtilities::GetVariableVector<TNumNodes>(this->GetParentGeometry(), DYNAMIC_FACTOR);\n const array_1d<double, TNumNodes>& PenaltyParameter = rDerivativeData.PenaltyParameter;\n \n // Mortar operators\n const BoundedMatrix<double, TNumNodes, TNumNodesMaster>& MOperator = rMortarConditionMatrices.MOperator;\n const BoundedMatrix<double, TNumNodes, TNumNodes>& DOperator = rMortarConditionMatrices.DOperator;\n\n" |
string generate_penalty_frictionless_mortar_condition_non_zero.rhs_template_end_string = "\n}\n" |
generate_penalty_frictionless_mortar_condition_non_zero.rv = sympy.Matrix( sympy.zeros(1, 1) ) |
Complete functional.
generate_penalty_frictionless_mortar_condition_non_zero.rv_galerkin = 0 |
FUNCTIONAL DEFINITION ############################.
generate_penalty_frictionless_mortar_condition_non_zero.testfunc = sympy.Matrix( sympy.zeros(number_dof, 1) ) |
int generate_penalty_frictionless_mortar_condition_non_zero.total_combs = normal_combs * len(nnodes_combinations) |
generate_penalty_frictionless_mortar_condition_non_zero.u1 = custom_sympy_fe_utilities.DefineMatrix('u1',nnodes,dim) |
list generate_penalty_frictionless_mortar_condition_non_zero.u12_var = u1_var.copy() |
list generate_penalty_frictionless_mortar_condition_non_zero.u1_var = [] |
generate_penalty_frictionless_mortar_condition_non_zero.u2 = custom_sympy_fe_utilities.DefineMatrix('u2',nnodes_master,dim) |
list generate_penalty_frictionless_mortar_condition_non_zero.u2_var = [] |
generate_penalty_frictionless_mortar_condition_non_zero.var_strings = [] |
DEFINE VARIABLES AND DERIVATIVES #######################.
generate_penalty_frictionless_mortar_condition_non_zero.var_strings_aux_subs = [] |
generate_penalty_frictionless_mortar_condition_non_zero.var_strings_subs = [] |
generate_penalty_frictionless_mortar_condition_non_zero.w1 = custom_sympy_fe_utilities.DefineMatrix('w1',nnodes,dim) |
generate_penalty_frictionless_mortar_condition_non_zero.w2 = custom_sympy_fe_utilities.DefineMatrix('w2',nnodes_master,dim) |
generate_penalty_frictionless_mortar_condition_non_zero.X1 = custom_sympy_fe_utilities.DefineMatrix('X1',nnodes,dim) |
generate_penalty_frictionless_mortar_condition_non_zero.X2 = custom_sympy_fe_utilities.DefineMatrix('X2',nnodes_master,dim) |