Giter VIP home page Giter VIP logo

gidinterface's Introduction

KratosMultiphysics <-> GiD Interface

Codacy Badge Tester

The user interface of Kratos with GiD.

If you need the latest stable release, launch your GiD, navigate to Data > Problemtype > Internet retrieve and download Kratos there. Available for Linux. Windows, and macOS.

If you need the developer version, you are on the right place.

First steps

  • 1- Clone this repository, or install a stable release
  • 2- Install the latest GiD developer version (minimum 16.1.4d) -> Developer version
  • 3- Navigate to GiD's problemtype folder and delete any previous kratos.gid
    • Create there a link to our kratos.gid downloaded in step 1
      • Windows: Simple shortcut to kratos.gid folder
  • 4- Choose your execution mode:
    • 4.1- Default execution mode. Use GiD's python:
      • You don't need to install python. The program will detect if you have any pending package to install.

      • If there's any missing package, use the GiD command line and execute:

        -np- W [GiD_Python_PipInstallMissingPackages [list $Kratos::pip_packages_required ] ]

    • 4.1- To execute Kratos using the standard pip packages:
      • Python version recommended: 3.8, 3.9, 3.10, 3.11
      • Open a terminal and run
        • Linux: python3 -m pip install --upgrade --force-reinstall --no-cache-dir KratosMultiphysics-all==9.5.1
        • Windows: python -m pip install --upgrade --force-reinstall --no-cache-dir KratosMultiphysics-all==9.5.1
    • 4.2- To execute Kratos using your compiled binaries:
    • 4.3- To execute Kratos using docker, just install docker.
      • Note: This is the ONLY option if you are a macOS user at this moment

Launch modes

In Kratos preferences, select the execution mode:

  • GiD's python: Use the GiD internal python to run. It will help you install the pip packages
  • Pip packages: Kratos will be installed via pip install
  • local compiled: If you are a developer and build your applications, use this one
  • docker: If you do not want to install any dependency, just run via docker!

Usage

  • Run GiD
  • Go to top menu: Data / Problem type / kratos
  • Go to top menu: kratos / Preferences / Developer mode (recommended)

Examples

Warnings

  • This repository is in Beta version. This means that everything can change.

Want to develop?

gidinterface's People

Contributors

afranci avatar alejandrocornejo avatar andinoboerst avatar avdg81 avatar bodhinandach avatar djvicente avatar eduardgomezescandell avatar escolano avatar farrufat-cimne avatar inigolcanalejo avatar inigolopezcanalejo avatar ipouplana avatar jcotela avatar jginternational avatar jgonzalezusua avatar joaquinirazabal avatar josep-m-carbonell avatar lauramoremar avatar lorenzogracia avatar loumalouomega avatar marco1410 avatar merceln avatar miguelmaso avatar mzecchetto avatar ncrescenzio avatar philbucher avatar riccardorossi avatar rlrangel avatar roigcarlo avatar rubenzorrilla avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gidinterface's Issues

PFEM Conditions applied to Bodies

A proposal for applying pfem conditions to Bodies (blockdata that contains Parts):

Try:

  • When a body is created:
    • Create a group with the same name
      If this is not possible (check customlib events for blockdata)
  • When a part is created:
    • If the Body group does not exists: Create a group for the body

This Body group can be:

  • Empty

    • Pros: Better performance
    • Cons: If user draws it, any entity is drawn
  • Updated with it's parts' elements

    • Pros: If user draws it, the entities of all it's parts are drawn
    • Cons: Lower performance
  • Blocked in the GiD groups window (forbidden to rename it, delete it, assign entities...)

In the write event, it can be:

  • Skipped
    • Pros: MDPA does not grow innecesarily
    • Cons: Need to implement a specific function for skipping this submodelparts and for the JSON
  • Written (with or without entities)
    • Pros: We can use the common functions for writing (easier) MDPA and JSON
    • Cons: We do not need that submodelpart

My personal choice is:

  • Body group updated with it's parts' entities
  • Submodelparts written in the MPDA even if then ignored

I'll start with this development this way, but it's going to take some time, and I'll do it to be 'easy to change', so if we decide to change any of these decisions, not to start again.
@KratosMultiphysics/pfem

Properties out of the MDPA

At this point (March '17) we are writing a MDPA section: Properties

Begin Properties 0
End Properties
Begin Properties 1
    DENSITY  7.85000E+003 
    YOUNG_MODULUS  2.06900E+011 
    POISSON_RATIO  2.90000E-001 
End Properties

In the Elements section, there is a reference to this properties:

Begin Elements SmallDisplacementElement2D3N// GUI group identifier: Parts Auto1
         1          1        349        350        312 
         2          1       2960       2983       2969 
         3          1       1770       1747       1759 
End Elements

The proposal is to write one of this two options:

  • Section in the ProjectParameters.json
  • New materials.json file

The resulting Properties & Element section will look like this:

Begin Properties 0
End Properties
Begin Elements SmallDisplacementElement2D3N// GUI group identifier: Parts Auto1
         1          0        349        350        312 
         2          0       2960       2983       2969 
         3          0       1770       1747       1759 
End Elements

The submodelpart will remain as it was:

Begin SubModelPart Parts_Parts_Auto1 // Group Parts Auto1 // Subtree Parts
    Begin SubModelPartNodes
         312
         350
         ...
         2969
         2983
    End SubModelPartNodes
    Begin SubModelPartElements
         1
         2
         3
    End SubModelPartElements
    Begin SubModelPartConditions
    End SubModelPartConditions
End SubModelPart

{  
"properties": [{
	"model_part_name": "Parts_Parts_Auto1",
	"properties_id": 1,
	"Material": {
		"name": "steel",
		"constitutive_law": {
			"name": "KratosMultiphysics.SolidMechanicsApplication.LinearElastic3DLaw"
		},
		"Variables": {
			"KratosMultiphysics.YOUNG_MODULUS": 200.0,
			"POISSON_RATIO": 0.3,
			"YIELD_STRESS": 400.0,
			"KratosMultiphysics.FluidDynamicsApplication.SUBSCALE_PRESSURE" : 0.1
		},
		"Tables": {
			"Table1": {
				"input_variable": "TEMPERATURE",
				"output_variable": "YOUNG_MODULUS",
				"data": [
					[0.0, 100.0],
					[200.0, 500.0]
				]
			}
		}
	}
}]
}

Clean code

  • Remove the catch in the common files and use info procs only if necessary
  • Force access to root document by using customlib extras function

Structural contact process

Solid contact process implemented by @loumalouomega need some customization in the writen json.

Ask user to match pairs of GiD group to contact.
(e.x. by defining a contact id in the process)

In the json one of the submodelparts will be origin_model_part_name and the other destination_model_part_name, and the contact id must not be shown

Structural - Add new parameters for the contact process

            "assume_master_slave"         : "",
            "manual_ALM"                  : false,
            "manual_ALM_parameters"       :
            {
                "penalty"                   : 0.0,
                "scale_factor"              : 1.0
            },
           "debug_mode"                  : false

Additionally:
"assume_master_slave": Must allow to select a group
"type_search" Now can be InBox too

For more details look into alm_contact_process

Create Potential Flow Application

Growing from Fluid app:
The application has it's own:

  • Solution strategy: potential_flow_solver
    • Needs:
      • skin_parts : List with the skin submodelparts
      • no_skin_parts: List with the Wake modelpart
  • Condition : Wake
    • Over:
      • 2D: Point - Node
      • 3D: Line - LinearElement
    • Parameters:
      • Direction
      • Epsilon

Supervisor: @RiccardoRossi

Time Settings

New proposal for time settings.

The parts to be moved are:

  • Time intervals
  • Time parameters

The requested structure is a single folder at toplevel:

  • Time settings
    • Time step
    • End time
    • Time intervals

Solid - Write degrees of freedom on ProjectParameters.json

Hi,
I'm experiencing problems in writing the type of degrees of freedom in Solid Mechanics Application and Pfem Application interfaces. In these applications there are several types of elements; in all of them the displacements are the degrees of freedom and in some of them extra degrees of freedom are used (e.g. pressure in mixed formulations). In the xml of these elements they have the filter filed "HybridType" to filter the constitutive equations, since different constitutive laws are used for each element type. In previous problem types we used to write something like:
"pressure_dofs" : true,
in the solver_settings part of the ProjectParameters.json so the degrees of freedom at each node could be added in the appropiate python file.
How can this filter used in the element xml (HybridType) be retrieved in the writting process of the json file?
Thanks

Stenosis wizard fails

After step 3 - Fluid conditions.
Stack:

invalid command name ""
invalid command name ""
    while executing
"$basenode selectNodes "./group\[@n='$groupid'\]""
    (procedure "AddConditionGroupOnNode" line 2)
    invoked from within
"AddConditionGroupOnNode $node $groupid"
    (procedure "spdAux::AddConditionGroupOnXPath" line 5)
    invoked from within
"spdAux::AddConditionGroupOnXPath $where "Inlet""
    (procedure "::StenosisWizard::Wizard::NextFluid" line 5)
    invoked from within
"::${wizardid}::Wizard::Next$stepId"
    (procedure "Wizard::NextEvent" line 5)
    invoked from within
"Wizard::NextEvent 2"
    (command bound to event)

Parameters visibility in examples

When a group is assigned to a condition using tcl functions (like examples do) the visibility of the parameters is not checked.

image

Check:

  • Dependencies
  • State function
  • Refresh

materials.py when 2 parts are presents

If there are 2 parts, the materials.py file is getting broken:

from __future__ import print_function, absolute_import, division #makes KratosMultiphysics backward compatible with python 2.6 and 2.7
# Importing the Kratos Library
from KratosMultiphysics import *
from KratosMultiphysics.SolidMechanicsApplication import *
#from beam_sections_python_utility import SetProperties
#from beam_sections_python_utility import SetMaterialProperties

def AssignMaterial(Properties):
    # material for solid material

    prop_id = 1;
    prop = Properties[prop_id]
    mat = LinearElasticPlaneStrain2DLaw()
    prop.SetValue(CONSTITUTIVE_LAW, mat.Clone())
        

from __future__ import print_function, absolute_import, division #makes KratosMultiphysics backward compatible with python 2.6 and 2.7
# Importing the Kratos Library
from KratosMultiphysics import *
from KratosMultiphysics.SolidMechanicsApplication import *
#from beam_sections_python_utility import SetProperties
#from beam_sections_python_utility import SetMaterialProperties

def AssignMaterial(Properties):
    # material for solid material

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

Case with a number as model name

When the name of a case is just a number, the Json prints a number (not a string) in three different places. This gives an execution error. It shoult be printed as a string (AND it could appear just once in the Json file??)

GiD model name -> 3.gid
ProjectParameters.json
What is happening?
{"model_name" : 3}
How should it be?
{"model_name" : "3"}

Generic submodelpart from group

As said in KratosMultiphysics/Kratos#278

There is a proposal that needs a <condition> to write a Group as submodelpart.
something like:

<condition n="GenericModelParts" pn="Add SubModelPart" un="ExtraModelParts" ov="point,line,surface,volume" state="[ShowInMode Developer]">
    <value n="WriteElements" pn="Write elements" v="False" values="True,False"/>
    <value n="WriteConditions" pn="Write conditions" v="True" values="True,False"/>
</condition>

The result is:
image
Note: It's important to select the entity type even if the group was previously created

We'll need to modify the writing process, to add this new feature

Dam examples

Follow the steps:

  • Create the files and buttons
  • Implement the geometry creation
  • Implement the Group assign
  • Implement the Mesh sizes (optional)
  • Implement the General parameters and conditions assign

Outlet process

Unify outlet processes into a single one

Must have the classical parameters plus:

  • hydrostatic_outlet
  • h_top

FSI not writting Structural properties (MDPA)

example_Structural.mdpa
Current:

Begin Properties 0
End Properties
Begin Properties 2
End Properties

Should be:

Begin Properties 0
End Properties
Begin Properties 2
    DENSITY  7.85000E+003 
    YOUNG_MODULUS  2.06900E+011 
    POISSON_RATIO  2.90000E-001 
End Properties

DAM Change deprecated process parameters from XYZ to verctor

DAM application processes are using a deprecated function [CheckDimension 3D] to show/hide the Z component in 2D models

The new way to implement this is by using vector and vector type
Example:

<inputs>
    <parameter n="is_fixed_X" pn="Imposed X" type="bool" v="1"/>
    <parameter n="is_fixed_Y" pn="Imposed Y" type="bool" v="1"/>
    <parameter n="is_fixed_Z" pn="Imposed Z" type="bool" v="1" state="[CheckDimension 3D]"/>
</inputs>

is now:

<inputs>
    <parameter n="is_fixed" pn="Imposed" type="vector" vectorType="bool" v="1,1,1"/>
</inputs>

FSI missing coupling parallel information

I've done a case and this is what I get:

Traceback (most recent call last):
  File "MainKratos.py", line 21, in <module>
    parallel_type = ProjectParameters["coupling_solver_settings"]["problem_data"]["parallel_type"].GetString()
RuntimeError: Error: --------- ERROR : --------- getting a value that does not exist. entry string : problem_data

in kratos/includes/kratos_parameters.h:185:Parameters::GetValue

In the project parameters json, in the coupling_solver_settings section, I get:

"coupling_solver_settings"  : {
        "solver_settings" : {
            "coupling_scheme"            : "DirichletNeumann",
            "solver_type"                : "partitioned_fsi_solver",
            "nl_tol"                     : 1e-5,
            "nl_max_it"                  : 50,
            "move_interface"             : true,
            "mesh_prediction"            : true,
            "coupling_strategy"          : {
                "solver_type"       : "Relaxation",
                "acceleration_type" : "Aitken",
                "w_0"               : 0.825
            },
            "mesh_solver"                : "mesh_solver_structural_similarity",
            "mesh_reform_dofs_each_step" : false,
            "structure_interfaces_list"  : ["StructureInterface3D_StructureInterface"],
            "fluid_interfaces_list"      : ["FluidNoSlipInterface3D_FluidInterface"]
        }
    }

In addition, in the writeProjectParameters.tcl of the FSI, I can not see the code that writes the parallel configuration

Pfem nodal conditions

Boundary conditions should appear:
if Domain type: Fluid -> only velocity & new inlet
else all

As requested by: @KratosMultiphysics/pfem

Monitoring devices

Monitoring devices will not be assigned to geometry/mesh but must be repeatable.
Parameters are:

  • Variable
  • XPosition
  • YPosition
  • ZPosition

Pfem no remeshing strategies

Remeshing strategies with Remesh : No should not be printed in json.

As requested by: @KratosMultiphysics/pfem

Official/Developer applications in Release 5.1.xx

To start with, I should know which applications (from the list) should be deployed in official mode:

  • Solid Mechanics
    • Structural Mechanics
  • Fluid Dynamics
    • Embedded Fluid
    • Potential Fluid
  • Fluid Structure Interaction
  • PFEM
  • DAM
  • Stenosis Wizard (Example)
  • DEM

The rest will be packed hidden (A.K.A in developer mode)?

Find the project

Once decided this, we should determine what parts of the official applications should be hidden in the official mode (visible for developers only)

Fix | Patch current bugs

From the current bug list, there are some of them really hard to solve but easy to patch.

Depending on the available time and the real impact on the rest of the issues we should take the decision of patching them and keep the issue opened for future solutions.

For example: #6 and #20 have an expensive solution, that will change the whole json writing system for all the applications, but it's cheap to patch 'em by banning some "forbidden project names"

FSI examples are broken

The 2d and 3d FSI examples are broken.
The recent changes in the fluid application may have broken the scripts

FSI ProjectParameters fluid domain bug

Doing a simple FSI example I've noted that the fields

  • volume_model_part_name (solver_settings dict)
  • model_part_name (gravity settings)

write the structure model part name instead of the fluid one.

Wind Tunnel Application

Create a new application: Wind Tunnel

  • Create a logo
  • Initial window:
    • Body fitted
    • Embedded

Starts Fluid app or Embedded in 3D mode.

The embedded toolbar to import an stl, move it, and create the tunnel, must be moved from the embedded application, to the Fluid. It must not be loaded automatically but must be available.
If Body fitted, when creating the tunnel, holes in the volume should be done

PFEM Inlet condition

Add AssignInletProcess to the PFEM inlet

Definition and parameters are in the PFEMFluid Application

Conditions assigned to subgroups

When a condition has intervals, when applying to a group:

  • Create a subgroup: name + interval name
  • Assign entities of father
  • Change Condition -> group [n -> father] :> group [n->new group]
  • This information should be saved in a variable, and stored in spd / restored from spd

When writting:

  • This auto-generated subgroups will be ignored. The father group will generate a submodelpart

This will allow us to use the same group multiple times in the same condition, so we can use intervals

Extra:

  • Take care of group modifications (rename, delete...)

How to write Conditions

In the issue KratosMultiphysics/Kratos#278 @RiccardoRossi , @maceligueta , @philbucher and me were talking about How should the problemtype write the conditions:

I've written this, trying to clearify some ideas (forgive me for the extension):

From the problemtype side, the most efficient way is to print the GiD element id.
Let's call this the A way of writing the conditions.
That is done using the customLib C++ lib, so it is faster and allows to handle larger number of elements than the current way of printing the conditions' block, in TCL.

The B way is do what we are doing now, each app implements it's way of printing/storing the conditions (or uses the common functions to do so). At this point, the pseudo-code looks like this:

In the Begin Conditions sections:

foreach condition in conditions: //(in the tree)
    foreach group in GetGroupsOf(condition)
        print "Begin Condition _ConditionName_"
        foreach element in GetElementsOf(group)
            nodes = GetNodesOf(element)
            print "i 0 nodes"
            ++i
        print "End Condition"
        Store(condition,group, initial_id, end_id)

Each condition-group stores its interval of ids, to print them later in the submodelpart.

In the submodelparts sections:

foreach condition-group in GetStoredConditionsGroups // previously stored
    Print "Begin SubModelPart _condition-group_
    Print "Begin nodes"
    foreach node in GetNodes(group)
        print node
    Print "End nodes"
    Print "Begin conditions"
    i = condition-group.getInitial
    while i < condition-group.getFinal
        print i
        ++i
    print "End conditions"
    print "End subModelPart"

Let's compare

THE A WAY:
pros:

  • Increased performance (C++ writing)
  • Easier implementation (we do not need to keep control of assigned ids)

cons:

  • Points are meshed as nodes, not as '1 noded elements', so it's ids are assigned as nodal id (We'll see it in an example). Dr. Abel Coll (manager of the GiD dept.) has explained me that he can change something in the GiD tcl API to get nodes meshed as elements.
  • Conditions id will not be consecutive
  • As @maceligueta said, it will be impossible to get different id for the same entity, if you need so.

THE B WAY:
pros:

  • It is already implemented
  • Conditions on nodes have a valid id assigned, without telling GiD to change it's meshing criteria

cons:

  • Lower performance (TCL writing)
  • Lower amount of elements (TCL can store lower information in a variable, remember the BCN model problems)
  • Difficult implementation
    • The fact of storing the 'invented' ids makes dificult the interaction between apps
  • Each app has needed to implement it's own system to control the assigned ids

EXAMPLES:
Imagine this geometry:
image

Groups assigned:
Body: the only surface
Top: The top line
Left: The left line

After meshing it, we get the following elements and nodes (elements in gray, nodes in black):
image

So assigned groups will have:
Body:
6 Nodes: 1 2 3 4 5 6
4 Elements (4 Triangle): 1 2 3 4
Top:
3 Nodes: 2 4 6
2 Elements (2 Linear): 5 6
Left:
2 Nodes: 1 2
1 Elements (1 Linear): 7

Imagine that we assign (in the kratos tree):
LINE_LOAD_CONDITION <-> Top -> with some properties
LINE_LOAD_CONDITION <-> Top -> with other properties (interval changes...)
LINE_PRESSURE_CONDITION <-> Top -> with some properties
LINE_LOAD_CONDITION <-> Left-> with some properties

The A way mdpa could look:

Begin Conditions LineLoadCondition2D2N// GUI group identifier: Top
    5 0 2 4
    6 0 4 6
End Conditions
Begin Conditions LinePressureCondition2D2N// GUI group identifier: Top
    5 0 2 4
    6 0 4 6
End Conditions
// Note that we are applying two different conditions to the same ids, and we need to repeat their connectivities

Begin Conditions LineLoadCondition2D2N// GUI group identifier: Left
    7 0 1 2
End Conditions

Begin SubModelPart LineLoad2D_Top // Group Top // Subtree LineLoad2D
    Begin SubModelPartNodes
         2
         4
         6
    End SubModelPartNodes
    Begin SubModelPartConditions
        5
        6
    End SubModelPartConditions
End SubModelPart
Begin SubModelPart LinePressure2D_Top // Group Top // Subtree LinePressure2D
    Begin SubModelPartNodes
         2
         4
         6
    End SubModelPartNodes
    Begin SubModelPartConditions
        5
        6
    End SubModelPartConditions
End SubModelPart
//Note that it's the same for both

Begin SubModelPart LineLoad2D_Left // Group Left // Subtree LineLoad2D
    Begin SubModelPartNodes
        1 
        2
    End SubModelPartNodes
    Begin SubModelPartConditions
        7
    End SubModelPartConditions
End SubModelPart

Meanwhile, the B Way is looking like this:

Begin Conditions LineLoadCondition2D2N// GUI group identifier: top
1 0 2 4
2 0 4 6
End Conditions

Begin Conditions LineLoadCondition2D2N// GUI group identifier: left
3 0 1 2
End Conditions

Begin Conditions LinePressureCondition2D2N// GUI group identifier: left
4 0 2 4
4 0 4 6
End Conditions

Begin SubModelPart LineLoad2D_top // Group top // Subtree LineLoad2D
    Begin SubModelPartNodes
         2
         4
         6
    End SubModelPartNodes
    Begin SubModelPartElements
    End SubModelPartElements
    Begin SubModelPartConditions
         1
         2
    End SubModelPartConditions
End SubModelPart
Begin SubModelPart LineLoad2D_left // Group left // Subtree LineLoad2D
    Begin SubModelPartNodes
         1
         2
    End SubModelPartNodes
    Begin SubModelPartElements
    End SubModelPartElements
    Begin SubModelPartConditions
         3
    End SubModelPartConditions
End SubModelPart
Begin SubModelPart LinePressure2D_top // Group top // Subtree LinePressure2D
    Begin SubModelPartNodes
         2
         4
         6
    End SubModelPartNodes
    Begin SubModelPartElements
    End SubModelPartElements
    Begin SubModelPartConditions
         4
         5
    End SubModelPartConditions
End SubModelPart

As you can see, both ways have more or less the same information, but in A, is GiD the one who assigns the ids, meanwhile in B, it's the problemtype.

Anyway, I still thinking that MDPA should only be a full dump of GiD Groups information (nodes and elements)

Problem in Embedded Open project

Open an Embedded application case

can't read "::Fluid::kratos_name": no such variable
can't read "::Fluid::kratos_name": no such variable
    while executing
"set kratos_name $::Fluid::kratos_name"
    (procedure "::EmbeddedFluid::Init" line 7)
    invoked from within
"::EmbeddedFluid::Init"
    (file "E:/PROYECTOS/KratosProblemtype/kratos.gid/apps/EmbeddedFluid/start.tcl" line 85)
    invoked from within
"::gidutils::source E:/PROYECTOS/KratosProblemtype/kratos.gid/apps/EmbeddedFluid/start.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel 1 ::gidutils::source $args"
    (procedure "source" line 7)
    invoked from within
"source E:/PROYECTOS/KratosProblemtype/kratos.gid/apps/EmbeddedFluid/start.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel 2 [list source $fileName]"
    (procedure "apps::loadAppFile" line 2)
    invoked from within
"apps::loadAppFile $fileName"
    (class "::App" method "activate" line 5)
    invoked from within
"$app activate"
    (procedure "apps::setActiveApp" line 8)
    invoked from within
"apps::setActiveApp $activeapp"
    (procedure "spdAux::CreateWindow" line 10)
    invoked from within
"spdAux::CreateWindow"
    ("after" script)

PFEM add materials

2 material types:
-Fluid
-Solid
-Rigid

Assign material in parts depending on Body type

Assign material in inlet

Start a wizard window

This application will be a wizard.
Create the wizard template files and call the initial window

FSI mapping Fluid Structure

Fluid Interface condition should know if it's positive or negative in the double sided interfaces

A new json section must be writen in the coupled part

Integration of DEM application

For the new release, a decision must be taken about DEM.

  • OPTION A: Create a new app
    Create a single app for the DEM application
  • OPTION B: Pack DEM as a single problemtype
    Deploy this new problemtype with GiD internet retrieve system
    Add the logo in this interface and launch the new problemtype

In both options, the compiled Kratos should be the same

@KratosMultiphysics/dem
@KratosMultiphysics/technical-committee

Load kratos from another problemtype

The idea is to pack a single application in a new problemtype, with another name, and load the kratos sources and data.
This will be useful to generate products as standalone applications or projects, like the Wind tunnel application.

This standalone projects must be connected to this repository and load kratos with a different problemtype name, xml, spd...

Nodal condition's parameters state

Nodal conditions parameters are checking it's state with the Conditions state function, which is not finding them.

whatsapp image 2017-04-07 at 17 19 17

Check: spdAux::ProcConditionParameterState

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.