Cubit-CalculiX 2024.12

Hi everyone,
a new update for the CalculiX Component for Cubit is out.
As always you can find the source and the binaries on Github.

So what is new:

We implemented a Materiallibrary. The syntax is similar to the standard cubit syntax. The modification of the library shouldn’t be too hard.

ccx create materiallibrary group name <name> 
ccx modify materiallibrary group name <name> new_name <new_name> 
ccx modify materiallibrary group name <name> description <description> 
ccx delete materiallibrary group name <name> 
ccx create materiallibrary material name <name> groupname <groupname> 
ccx modify materiallibrary material name <name> groupname <groupname> new_name <new_name> 
ccx modify materiallibrary material name <name> groupname <groupname> description <description> 
ccx modify materiallibrary material name <name> groupname <groupname> scalar_properties <scalar_properties> <value> 
ccx modify materiallibrary material name <name> groupname <groupname> matrix_property <matrix_property> <values>... 
ccx delete materiallibrary material name <name> groupname <groupname> 
ccx export materiallibrary cubit_name <cubit_name> name <name> groupname <groupname> 
ccx import materiallibrary name <name> groupname <groupname> cubit_name <cubit_name> 

The gui for the Materialmanagement was also changed to include the Materiallibrary. The materials in the library can be changed just like the materials in cubit. Also take a look at the now available Material cards, if you are missing one just write me.

We included the model keywords for damping and the physical constants.

It is now possible to also define Dynamic, Modal Dynamic, Steady State Dynamics and Complex Frequency steps.

We added support for new loads. The *Film and *Radiate keywords are now supported.
Also created a load called trajectory. It can be used to define moving heatfluxes.
The magnitude can be assigned to a radius. This way you can create a profile for the heatsource.

You can get access to the drawn faces of the trajectory through the python api.
That could for example be used for refinement along the trajectory path.

# refinement with the use of the python interface
#!python
import numpy
face_ids = ccx.loadstrajectory_get_draw_face_ids(1)
all_face_ids=[]
for node in face_ids:
 for radius in node:
  for face in radius:
   all_face_ids.append(face)

all_face_ids=list(numpy.unique(all_face_ids))

if len(all_face_ids)>0:
 status=cubit.cmd(f"refine hex all in face {' '.join(str(id) for id in all_face_ids)} numsplit 1 bias 1.0 depth 0")
print(f"refinement {status}")


moving_heatsource

1 Like

Wow! This is such a great work @NorbertH!