The Trick Simulation Environment, developed at the NASA Johnson Space Center, is a powerful simulation development framework that enables users to build applications for all phases of space vehicle development. Trick expedites the creation of simulations for early vehicle design, performance evaluation, flight software development, flight vehicle dynamic load analysis, and virtual/hardware in the loop training. Trick's purpose is to provide a common set of simulation capabilities that allow users to concentrate on their domain specific models, rather than simulation-specific functions like job ordering, input file processing, or data recording.
I would like to point out that identifiers like "_ATTRIBUTES_H_" and "_CLOCK_HH_" do not fit to the expected naming convention of the C++ language standard.
Would you like to adjust your selection for unique names?
Before we became open source we have various copyright notices and header comments that are now obsolete. Also remove $Id$ comments as they will no longer be updated with git.
Using the ball sim, the sim should run for a bit and take a checkpoint. then continue for a bit, reload the checkpoint and continue to the end. The results should be the same at the end.
I had no problems building Trick on Fedora 21 until I ran sudo make install. The makefile is looking for er7_utils. Recommend either include er7_utils, or remove the dependency from the makefile.
The dry run file is written in ascii where as the values coming out of the random number generators are fed into monte carlo runs as exact binary representation of double numbers. To get these to match, we can change everything to use ascii.
The intent is create a model sim example.
Create a README file that clearly describes the simulation.
Also ensure that the code and the documentation are clear and consistent.
Suppose that in some sim object "foo" you have an array:
double D3x3 [3][3];
and a pointer :
double (*pD3) [3];
and you point to the array like so:
pD3 = D3x3;
Although ref_attributes("foo.pD3[0]") will return the correct address,
ref_attributes("foo.pD3[1]") and ref_attributes("foo.pD3[2]") will not.
The problem is that Trick::MemoryManager::ref_dim() is not correctly calculating the sizes of the elements of an unconstrained array.
Our release is going to be a tar.gz file now. This will not include a pre-build ICG. So that means everyone needs clang/llvm and we need to ensure the configure script sets that up.
make install copies the binaries to the install directory, but trick_dp fails to file gte.pm and terminates. gte.pm is found in trick/bin/pm/gte.pm.
Centos 6.6
What is the preferred deployment method? Make install or set the path to the as built bin directory? If preferred deployment is make install, recommend adding additional steps to satisfy runtime binaries. If other method is preferred, recommend either updating the launch scripts or update installation instructions.
The following conditions will generate a problem with the variable server restarting:
1.) User must specify a port via trick.var_server_set_port(<port_id>) in the input file
2.) Execute simulation and dump a checkpoint on machine A.
3.) ssh to machine B.
4.) Execute simulation and load the checkpoint.
Variable Server will fail with error:
ERROR: Could not establish listen port <port_id> for Variable Server. Aborting.
From this point on, any attempts to connect to the variable server will fail. however, already established connections seem to succeed.
Create rules in the makefile that will compile the er7_utils and fermi-ware directories if they exist. If they do not exist, then don't try and compile them.
If there is a permission issue for writing the makefile, such as the directory has no write permission, no error is given besides "no rule to make target".
generated Makefile_swig. There is no guarantee that make will not attempt to link in compiled swig file before the standard objects deps are processed.
I'm using Fedora 21. Java 1.8.0 OpenJDK is in the Fedora 21 repository, not 1.7.0. But either way, java-1.8.0-openjdk did not install the required javac executable. I had to install java-1.8.0-openjdk-devel. Recommend updating the wiki to include supported Linux distributions and versions and confirming that java-1.7.0-openjdk package installs javac or if it requires java-1.7.0-openjdk-devel as well.
Th Digest::MD5 module is not always installed by default on all systems. We only it use it to generate a unique file name. Using the file inode information will serve the same purpose.
cp -r /usr/lib64/llvm/clang/3.4.2 lib/clang
cp: cannot stat `/usr/lib64/llvm/clang/3.4.2': No such file or directory
Centos 6.6
clang/llvm 3.4.2
The source of the error is at:
trick_source/codegen/Interface_Code_Gen/makefile: cp -r $(CLANG_LIBDIR)/clang/$(LLVM_VERSION) lib/clang
Manually changing CLANG_LIBDIR from "/usr/lib64" to "/usr/lib" fixes the problem. The CentOS 6 yum repo puts both the 32 bit and 64 bit libraries at /usr/lib/clang/3.4.2.