|
bool | generate_penalty_frictional_mortar_condition.do_simplifications = False |
|
string | generate_penalty_frictional_mortar_condition.mode = "c" |
|
bool | generate_penalty_frictional_mortar_condition.impose_partion_of_unity = False |
|
bool | generate_penalty_frictional_mortar_condition.debug = False |
|
int | generate_penalty_frictional_mortar_condition.debug_counter = 0 |
|
list | generate_penalty_frictional_mortar_condition.dim_combinations = [2,3,3,3,3] |
|
list | generate_penalty_frictional_mortar_condition.nnodes_combinations = [2,3,4,3,4] |
|
list | generate_penalty_frictional_mortar_condition.nnodes_master_combinations = [2,3,4,4,3] |
|
int | generate_penalty_frictional_mortar_condition.normal_combs = 2 |
|
string | generate_penalty_frictional_mortar_condition.lhs_template_begin_string = "\n/***********************************************************************************/\n/***********************************************************************************/\n\ntemplate<>\nvoid PenaltyMethodFrictionalMortarContactCondition<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, TNumNodes, TDim>& u1old = rDerivativeData.u1old;\n const BoundedMatrix<double, TNumNodesMaster, TDim>& u2 = rDerivativeData.u2;\n// const BoundedMatrix<double, TNumNodesMaster, TDim>& u2old = rDerivativeData.u2old;\n const BoundedMatrix<double, TNumNodes, TDim>& X1 = rDerivativeData.X1;\n const BoundedMatrix<double, TNumNodesMaster, TDim>& X2 = rDerivativeData.X2;\n \n // The normal and tangent vectors\n const BoundedMatrix<double, TNumNodes, TDim>& NormalSlave = rDerivativeData.NormalSlave;\n const BoundedMatrix<double, TNumNodes, TDim> TangentSlave = ComputeTangentMatrixSlip(r_geometry);\n\n // The penalty parameters\n const array_1d<double, TNumNodes> DynamicFactor = MortarUtilities::GetVariableVector<TNumNodes>(r_geometry, DYNAMIC_FACTOR);\n const array_1d<double, TNumNodes>& PenaltyParameter = rDerivativeData.PenaltyParameter;\n const double TangentFactor = rDerivativeData.TangentFactor;\n \n // Mortar operators\n const BoundedMatrix<double, TNumNodes, TNumNodesMaster>& MOperator = rMortarConditionMatrices.MOperator;\n const BoundedMatrix<double, TNumNodes, TNumNodes>& DOperator = rMortarConditionMatrices.DOperator;\n const BoundedMatrix<double, TNumNodes, TNumNodes>& MOperatorold = mPreviousMortarOperators.MOperator;\n const BoundedMatrix<double, TNumNodes, TNumNodes>& DOperatorold = mPreviousMortarOperators.DOperator;\n\n // Mortar operators derivatives\n const array_1d<BoundedMatrix<double, TNumNodes, TNumNodes>, SIZEDERIVATIVES2>& DeltaMOperator = rMortarConditionMatrices.DeltaMOperator;\n const array_1d<BoundedMatrix<double, TNumNodes, TNumNodes>, SIZEDERIVATIVES2>& DeltaDOperator = rMortarConditionMatrices.DeltaDOperator;\n\n // We get the friction coefficient\n const array_1d<double, TNumNodes> mu = GetFrictionCoefficient();\n\n// // The delta time\n// const double delta_time = rCurrentProcessInfo[DELTA_TIME];\n" |
|
string | generate_penalty_frictional_mortar_condition.lhs_template_end_string = "}\n" |
|
string | generate_penalty_frictional_mortar_condition.rhs_template_begin_string = "\n/***********************************************************************************/\n/***********************************************************************************/\n\ntemplate<>\nvoid PenaltyMethodFrictionalMortarContactCondition<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, TNumNodes, TDim>& u1old = rDerivativeData.u1old;\n const BoundedMatrix<double, TNumNodesMaster, TDim>& u2 = rDerivativeData.u2;\n// const BoundedMatrix<double, TNumNodesMaster, TDim>& u2old = rDerivativeData.u2old;\n const BoundedMatrix<double, TNumNodes, TDim>& X1 = rDerivativeData.X1;\n const BoundedMatrix<double, TNumNodesMaster, TDim>& X2 = rDerivativeData.X2;\n \n // The normal and tangent vectors\n const BoundedMatrix<double, TNumNodes, TDim>& NormalSlave = rDerivativeData.NormalSlave;\n const BoundedMatrix<double, TNumNodes, TDim> TangentSlave = ComputeTangentMatrixSlip(r_geometry);\n\n // The penalty parameters\n const array_1d<double, TNumNodes> DynamicFactor = MortarUtilities::GetVariableVector<TNumNodes>(r_geometry, DYNAMIC_FACTOR);\n const array_1d<double, TNumNodes>& PenaltyParameter = rDerivativeData.PenaltyParameter;\n const double TangentFactor = rDerivativeData.TangentFactor;\n \n // Mortar operators\n const BoundedMatrix<double, TNumNodes, TNumNodesMaster>& MOperator = rMortarConditionMatrices.MOperator;\n const BoundedMatrix<double, TNumNodes, TNumNodes>& DOperator = rMortarConditionMatrices.DOperator;\n const BoundedMatrix<double, TNumNodes, TNumNodes>& MOperatorold = mPreviousMortarOperators.MOperator;\n const BoundedMatrix<double, TNumNodes, TNumNodes>& DOperatorold = mPreviousMortarOperators.DOperator;\n\n // We get the friction coefficient\n const array_1d<double, TNumNodes> mu = GetFrictionCoefficient();\n\n// // The delta time\n// const double delta_time = rCurrentProcessInfo[DELTA_TIME];\n" |
|
string | generate_penalty_frictional_mortar_condition.rhs_template_end_string = "}\n" |
|
int | generate_penalty_frictional_mortar_condition.output_count = 0 |
|
int | generate_penalty_frictional_mortar_condition.total_combs = normal_combs * len(nnodes_combinations) |
|
string | generate_penalty_frictional_mortar_condition.normalvarstring = "false" |
|
string | generate_penalty_frictional_mortar_condition.lhs_string = "" |
| SUBSTITUTION ################################. More...
|
|
string | generate_penalty_frictional_mortar_condition.rhs_string = "" |
|
| generate_penalty_frictional_mortar_condition.number_dof = dim * (nnodes_master + nnodes) |
|
| generate_penalty_frictional_mortar_condition.u1 = custom_sympy_fe_utilities.DefineMatrix('u1', nnodes, dim, "Symbol") |
|
| generate_penalty_frictional_mortar_condition.u2 = custom_sympy_fe_utilities.DefineMatrix('u2', nnodes_master, dim, "Symbol") |
|
| generate_penalty_frictional_mortar_condition.u1old = custom_sympy_fe_utilities.DefineMatrix('u1old', nnodes, dim, "Symbol") |
|
| generate_penalty_frictional_mortar_condition.u2old = custom_sympy_fe_utilities.DefineMatrix('u2old', nnodes_master, dim, "Symbol") |
|
| generate_penalty_frictional_mortar_condition.NormalSlave = custom_sympy_fe_utilities.DefineMatrix('NormalSlave', nnodes, dim) |
|
| generate_penalty_frictional_mortar_condition.TangentSlave = custom_sympy_fe_utilities.DefineMatrix('TangentSlave', nnodes, dim) |
|
| generate_penalty_frictional_mortar_condition.w1 = custom_sympy_fe_utilities.DefineMatrix('w1',nnodes,dim, "Symbol") |
|
| generate_penalty_frictional_mortar_condition.w2 = custom_sympy_fe_utilities.DefineMatrix('w2',nnodes_master,dim, "Symbol") |
|
| generate_penalty_frictional_mortar_condition.NormalGap = custom_sympy_fe_utilities.DefineVector('NormalGap', nnodes) |
|
| generate_penalty_frictional_mortar_condition.NormalwGap = custom_sympy_fe_utilities.DefineVector('NormalwGap', nnodes) |
|
| generate_penalty_frictional_mortar_condition.TangentSlipNonObjective = custom_sympy_fe_utilities.DefineMatrix('TangentSlipNonObjective', nnodes, dim) |
|
| generate_penalty_frictional_mortar_condition.TangentwSlipNonObjective = custom_sympy_fe_utilities.DefineMatrix('TangentwSlipNonObjective', nnodes, dim) |
|
| generate_penalty_frictional_mortar_condition.TangentSlipObjective = custom_sympy_fe_utilities.DefineMatrix('TangentSlipObjective', nnodes, dim) |
|
| generate_penalty_frictional_mortar_condition.TangentwSlipObjective = custom_sympy_fe_utilities.DefineMatrix('TangentwSlipObjective', nnodes, dim) |
|
| generate_penalty_frictional_mortar_condition.DOperator = custom_sympy_fe_utilities.DefineMatrix('DOperator', nnodes, nnodes) |
|
| generate_penalty_frictional_mortar_condition.MOperator = custom_sympy_fe_utilities.DefineMatrix('MOperator', nnodes, nnodes_master) |
|
| generate_penalty_frictional_mortar_condition.DOperatorold = custom_sympy_fe_utilities.DefineMatrix('DOperatorold',nnodes,nnodes, "Symbol") |
|
| generate_penalty_frictional_mortar_condition.MOperatorold = custom_sympy_fe_utilities.DefineMatrix('MOperatorold',nnodes,nnodes_master, "Symbol") |
|
| generate_penalty_frictional_mortar_condition.X1 = custom_sympy_fe_utilities.DefineMatrix('X1',nnodes,dim) |
|
| generate_penalty_frictional_mortar_condition.X2 = custom_sympy_fe_utilities.DefineMatrix('X2',nnodes_master,dim) |
|
| generate_penalty_frictional_mortar_condition.x1 = X1 + u1 |
|
| generate_penalty_frictional_mortar_condition.x2 = X2 + u2 |
|
| generate_penalty_frictional_mortar_condition.x1old = X1 + u1old |
|
| generate_penalty_frictional_mortar_condition.x2old = X2 + u2old |
|
| generate_penalty_frictional_mortar_condition.mu = custom_sympy_fe_utilities.DefineVector('mu',nnodes, "Symbol") |
|
| generate_penalty_frictional_mortar_condition.DynamicFactor = custom_sympy_fe_utilities.DefineVector('DynamicFactor',nnodes, "Symbol") |
|
| generate_penalty_frictional_mortar_condition.PenaltyParameter = custom_sympy_fe_utilities.DefineVector('PenaltyParameter',nnodes, "Symbol") |
|
| generate_penalty_frictional_mortar_condition.delta_time = sympy.Symbol('delta_time', positive=True) |
|
| generate_penalty_frictional_mortar_condition.ScaleFactor = sympy.Symbol('ScaleFactor', positive=True) |
|
| generate_penalty_frictional_mortar_condition.TangentFactor = sympy.Symbol('TangentFactor', positive=True) |
|
list | generate_penalty_frictional_mortar_condition.u1_var = [] |
|
list | generate_penalty_frictional_mortar_condition.u2_var = [] |
|
list | generate_penalty_frictional_mortar_condition.u12_var = u1_var.copy() |
|
| generate_penalty_frictional_mortar_condition.Dx1Mx2 = DOperator * x1 - MOperator * x2 |
|
| generate_penalty_frictional_mortar_condition.Dw1Mw2 = DOperator * w1 - MOperator * w2 |
|
| generate_penalty_frictional_mortar_condition.DDeltax1MDeltax2 = DOperator * (x1 - x1old) - MOperator * (x2 - x2old) |
|
tuple | generate_penalty_frictional_mortar_condition.DeltaDx1DeltaMx2 = (DOperator - DOperatorold) * x1 - (MOperator - MOperatorold) * x2 |
|
tuple | generate_penalty_frictional_mortar_condition.DeltaDw1DeltaMw2 = (DOperator - DOperatorold) * w1 - (MOperator - MOperatorold) * w2 |
|
| generate_penalty_frictional_mortar_condition.gap_time_derivative_non_objective = - DDeltax1MDeltax2.row(node)/delta_time |
|
| generate_penalty_frictional_mortar_condition.gap_time_derivative_non_objective_w = Dw1Mw2.row(node)/delta_time |
|
tuple | generate_penalty_frictional_mortar_condition.gap_time_derivative_objective = DeltaDx1DeltaMx2.row(node)/delta_time |
|
tuple | generate_penalty_frictional_mortar_condition.gap_time_derivative_objective_w = - DeltaDw1DeltaMw2.row(node)/delta_time |
|
| generate_penalty_frictional_mortar_condition.auxTangentSlipNonObjective = delta_time * (gap_time_derivative_non_objective - gap_time_derivative_non_objective.dot(NormalSlave.row(node)) * NormalSlave.row(node)) |
|
| generate_penalty_frictional_mortar_condition.auxTangentwSlipNonObjective = delta_time * (gap_time_derivative_non_objective_w - gap_time_derivative_non_objective_w.dot(NormalSlave.row(node)) * NormalSlave.row(node)) |
|
| generate_penalty_frictional_mortar_condition.auxTangentSlipObjective = delta_time * (gap_time_derivative_objective - gap_time_derivative_objective.dot(NormalSlave.row(node)) * NormalSlave.row(node)) |
|
| generate_penalty_frictional_mortar_condition.auxTangentwSlipObjective = delta_time * (gap_time_derivative_objective_w - gap_time_derivative_objective_w.dot(NormalSlave.row(node)) * NormalSlave.row(node)) |
|
| generate_penalty_frictional_mortar_condition.dofs = sympy.Matrix( sympy.zeros(number_dof, 1) ) |
| Enforced auxTangentSlipNonObjective = delta_time * gap_time_derivative_non_objective.dot(TangentSlave.row(node)) * TangentSlave.row(node) auxTangentwSlipNonObjective = delta_time * gap_time_derivative_non_objective_w.dot(TangentSlave.row(node)) * TangentSlave.row(node) auxTangentSlipObjective = delta_time * gap_time_derivative_objective.dot(TangentSlave.row(node)) * TangentSlave.row(node) auxTangentwSlipObjective = delta_time * gap_time_derivative_objective_w.dot(TangentSlave.row(node)) * TangentSlave.row(node) More...
|
|
| generate_penalty_frictional_mortar_condition.testfunc = sympy.Matrix( sympy.zeros(number_dof, 1) ) |
|
int | generate_penalty_frictional_mortar_condition.count = 0 |
|
int | generate_penalty_frictional_mortar_condition.rv_galerkin = 0 |
| FUNCTIONAL DEFINITION ############################. More...
|
|
| generate_penalty_frictional_mortar_condition.augmented_normal_contact_pressure = PenaltyParameter[node] * NormalGap[node] |
|
| generate_penalty_frictional_mortar_condition.normal_augmented_contact_pressure = augmented_normal_contact_pressure * NormalSlave.row(node) |
|
| generate_penalty_frictional_mortar_condition.augmented_tangent_contact_pressure = - mu[node] * augmented_normal_contact_pressure * TangentSlave.row(node) |
|
| generate_penalty_frictional_mortar_condition.rv = sympy.Matrix(sympy.zeros(1, 1)) |
| Complete functional. More...
|
|
| generate_penalty_frictional_mortar_condition.rhs |
|
| generate_penalty_frictional_mortar_condition.lhs |
|
| generate_penalty_frictional_mortar_condition.lhs_out = custom_sympy_fe_utilities.OutputMatrix_CollectingFactorsNonZero(lhs, "lhs", mode, 1, number_dof) |
|
| generate_penalty_frictional_mortar_condition.rhs_out = custom_sympy_fe_utilities.OutputVector_CollectingFactorsNonZero(rhs, "rhs", mode, 1, number_dof) |
|
list | generate_penalty_frictional_mortar_condition.var_strings = [] |
| DEFINE VARIABLES AND DERIVATIVES #######################. More...
|
|
list | generate_penalty_frictional_mortar_condition.var_strings_subs = [] |
|
list | generate_penalty_frictional_mortar_condition.var_strings_aux_subs = [] |
|
list | generate_penalty_frictional_mortar_condition.der_var_strings = [] |
|
list | generate_penalty_frictional_mortar_condition.der_var_list = [] |
|
list | generate_penalty_frictional_mortar_condition.der_var_used_index = [] |
|
| generate_penalty_frictional_mortar_condition.first_input = open("penalty_frictional_mortar_contact_condition_template.cpp", 'r').read() |
| FINAL SAVING ##############################. More...
|
|
| generate_penalty_frictional_mortar_condition.outputstring = first_input.replace("// replace_lhs", lhs_string) |
|
| generate_penalty_frictional_mortar_condition.input = open("penalty_frictional_mortar_contact_condition.cpp", 'r').read() |
|
| generate_penalty_frictional_mortar_condition.output = open("penalty_frictional_mortar_contact_condition.cpp",'w') |
|