Skip to content

Commit

Permalink
Separating the lagrangian and the eulerian in the solver
Browse files Browse the repository at this point in the history
  • Loading branch information
loumalouomega committed Apr 19, 2017
1 parent 8ae61cb commit 105a5ca
Show file tree
Hide file tree
Showing 11 changed files with 1,499 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from KratosMultiphysics import *
from KratosMultiphysics.ExternalSolversApplication import *
from KratosMultiphysics.FluidDynamicsApplication import *
from KratosMultiphysics.SolidMechanicsApplication import *
from KratosMultiphysics.MeshingApplication import *

import os
Expand All @@ -19,9 +20,12 @@ def __init__(self, ProjectParameters):

self.Model = {self.ProjectParameters["problem_data"]["model_part_name"].GetString(): self.main_model_part}

## Solver construction
import python_solvers_wrapper_fluid
self.solver = python_solvers_wrapper_fluid.CreateSolver(self.main_model_part, self.ProjectParameters)
self.problem_type = self.ProjectParameters["problem_data"]["problem_type"].GetString()

if self.problem_type == "fluid":
## Solver construction
import python_solvers_wrapper_fluid
self.solver = python_solvers_wrapper_fluid.CreateSolver(self.main_model_part, self.ProjectParameters)

# Add variables (always before importing the model part) (it must be integrated in the ImportModelPart)
# If we integrate it in the model part we cannot use combined solvers
Expand Down Expand Up @@ -57,21 +61,22 @@ def __init__(self, ProjectParameters):
self.solver.Initialize()
self.solver.SetEchoLevel(0) # Avoid to print anything

# Build sub_model_parts or submeshes (rearrange parts for the application of custom processes)
# #Get the list of the submodel part in the object Model
for i in range(self.ProjectParameters["solver_settings"]["skin_parts"].size()):
skin_part_name = self.ProjectParameters["solver_settings"]["skin_parts"][i].GetString()
self.Model.update({skin_part_name: self.main_model_part.GetSubModelPart(skin_part_name)})

## Get the list of the initial conditions submodel parts in the object Model
for i in range(self.ProjectParameters["initial_conditions_process_list"].size()):
initial_cond_part_name = self.ProjectParameters["initial_conditions_process_list"][i]["Parameters"]["model_part_name"].GetString()
self.Model.update({initial_cond_part_name: self.main_model_part.GetSubModelPart(initial_cond_part_name)})

## Get the gravity submodel part in the object Model
for i in range(self.ProjectParameters["gravity"].size()):
gravity_part_name = self.ProjectParameters["gravity"][i]["Parameters"]["model_part_name"].GetString()
self.Model.update({gravity_part_name: self.main_model_part.GetSubModelPart(gravity_part_name)})
if self.problem_type == "fluid":
# Build sub_model_parts or submeshes (rearrange parts for the application of custom processes)
# #Get the list of the submodel part in the object Model
for i in range(self.ProjectParameters["solver_settings"]["skin_parts"].size()):
skin_part_name = self.ProjectParameters["solver_settings"]["skin_parts"][i].GetString()
self.Model.update({skin_part_name: self.main_model_part.GetSubModelPart(skin_part_name)})

## Get the list of the initial conditions submodel parts in the object Model
for i in range(self.ProjectParameters["initial_conditions_process_list"].size()):
initial_cond_part_name = self.ProjectParameters["initial_conditions_process_list"][i]["Parameters"]["model_part_name"].GetString()
self.Model.update({initial_cond_part_name: self.main_model_part.GetSubModelPart(initial_cond_part_name)})

## Get the gravity submodel part in the object Model
for i in range(self.ProjectParameters["gravity"].size()):
gravity_part_name = self.ProjectParameters["gravity"][i]["Parameters"]["model_part_name"].GetString()
self.Model.update({gravity_part_name: self.main_model_part.GetSubModelPart(gravity_part_name)})

## Remeshing processes construction
if (self.ProjectParameters.Has("initial_remeshing_process") == True):
Expand All @@ -91,9 +96,10 @@ def __init__(self, ProjectParameters):
process.ExecuteInitialize()

# Obtain the list of the processes to be applied
self.list_of_processes = process_factory.KratosProcessFactory(self.Model).ConstructListOfProcesses( self.ProjectParameters["gravity"] )
self.list_of_processes += process_factory.KratosProcessFactory(self.Model).ConstructListOfProcesses( self.ProjectParameters["initial_conditions_process_list"] )
self.list_of_processes += process_factory.KratosProcessFactory(self.Model).ConstructListOfProcesses( self.ProjectParameters["boundary_conditions_process_list"] )
if self.problem_type == "fluid":
self.list_of_processes = process_factory.KratosProcessFactory(self.Model).ConstructListOfProcesses( self.ProjectParameters["gravity"] )
self.list_of_processes += process_factory.KratosProcessFactory(self.Model).ConstructListOfProcesses( self.ProjectParameters["initial_conditions_process_list"] )
self.list_of_processes += process_factory.KratosProcessFactory(self.Model).ConstructListOfProcesses( self.ProjectParameters["boundary_conditions_process_list"] )
if (self.ProjectParameters.Has("list_other_processes") == True):
self.list_of_processes += process_factory.KratosProcessFactory(self.Model).ConstructListOfProcesses(self.ProjectParameters["list_other_processes"])
if (self.ProjectParameters.Has("json_check_process") == True):
Expand Down
22 changes: 22 additions & 0 deletions applications/MeshingApplication/tests/materials.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

# Importing the Kratos Library
from KratosMultiphysics import *
from KratosMultiphysics.SolidMechanicsApplication import *
#from beam_sections_python_utility import SetProperties
def AssignMaterial(Properties):
prop_id = 1;
prop = Properties[prop_id]
mat = LinearElasticPlaneStrain2DLaw()
prop.SetValue(CONSTITUTIVE_LAW, mat.Clone())

prop_id = 2;
prop = Properties[prop_id]
mat = LinearElastic3DLaw();
prop.SetValue(CONSTITUTIVE_LAW, mat.Clone());

prop_id = 3;
prop = Properties[prop_id]
mat = HyperElasticPlasticJ2PlaneStrain2DLaw()
prop.SetValue(CONSTITUTIVE_LAW, mat.Clone())

print( prop )
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"problem_data" : {
"problem_name" : "2D_cavity_test",
"model_part_name" : "MainModelPart",
"problem_type" : "fluid",
"domain_size" : 2,
"parallel_type" : "OpenMP",
"echo_level" : 0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"model_part_name" : "MainModelPart",
"domain_size" : 2,
"parallel_type" : "OpenMP",
"problem_type" : "fluid",
"echo_level" : 0,
"start_time" : 0.0,
"end_time" : 0.029,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"problem_data" : {
"problem_name" : "2D_sphere_remeshed_channel_test",
"model_part_name" : "MainModelPart",
"problem_type" : "fluid",
"domain_size" : 2,
"parallel_type" : "OpenMP",
"echo_level" : 0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"problem_data" : {
"problem_name" : "3D_hessian_test",
"model_part_name" : "MainModelPart",
"problem_type" : "fluid",
"domain_size" : 3,
"echo_level" : 0,
"parallel_type" : "OpenMP",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"problem_data" : {
"problem_name" : "3D_sphere_remeshed_channel_test",
"model_part_name" : "MainModelPart",
"problem_type" : "fluid",
"domain_size" : 3,
"parallel_type" : "OpenMP",
"echo_level" : 0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"problem_data" : {
"problem_name" : "bunny_test",
"model_part_name" : "MainModelPart",
"problem_type" : "fluid",
"domain_size" : 3,
"parallel_type" : "OpenMP",
"start_time" : 0.0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"problem_data" : {
"problem_name" : "coarse_sphere_test",
"model_part_name" : "MainModelPart",
"problem_type" : "fluid",
"domain_size" : 3,
"echo_level" : 0,
"parallel_type" : "OpenMP",
Expand Down
Loading

0 comments on commit 105a5ca

Please sign in to comment.